在单列中将数据写入csv文件

2024-09-30 06:14:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我能够获取数据并使用API URL打印,下面是我的代码

import re
import json
import warnings
import urllib.request
import csv

warnings.filterwarnings('ignore', message='Unverified HTTPS request')

url = "http://machineXYZ.local:4450/api/35/project/ProjectName01/executions"
headers = {
  'Accept': 'application/json',
  'X-Rundeck-Auth-Token': '#Tokens here#'
}
response = requests.request("GET", url, headers=headers, verify = False)
#print(response.text.encode('utf8'))

response_value = response.json()
response_value = json.dumps(response_value)
resp = json.loads(response_value)
with open('execute.csv','w') as executeData:
i = resp['executions']

with open('ExecOutput.csv','w') as executeData:
    for a in i:

        try:
            if (a['id']==0):
                print("Is empty")
            else:
                print("Job ID is : " + str(a['id']))
                csvWriter = csv.writer(executeData,delimiter=',')
                csvWriter.writerow(str(a['id']))
                for a in
        except KeyError:
            print("Job ID: Key error issue, Check input again")

        try:
            if(a['project']==0):
                print("Project data not available")
            else:
                print("Project Name: "+a['project'])
                csvWriter = csv.writer(executeData, delimiter=',')
                csvWriter.writerow(a['project'])
        except KeyError:
            print("Project Name: Key error issue, Check input again")

        try:
            if(a['name']==null):
                print("Job Name not available")
            else:
                print("JobName: "+a['name'])
                csvWriter = csv.writer(executeData)
                csvWriter.writerow(str(a['name']))
        except KeyError:
            print("JobName: key Error check again")
print("\n")

输出是

    {
      "id": 2,
      "href": "http://localhost:4440/api/36/execution/2",
      "permalink": "http://localhost:4440/project/ProjectEXAMPLE/execution/show/2",
      "status": "succeeded",
      "project": "ProjectEXAMPLE",
      "executionType": "scheduled",
      "user": "admin",
      "date-started": {
        "unixtime": 1608296400032,
        "date": "2020-12-18T13:00:00Z"
      },
      "date-ended": {
        "unixtime": 1608296400374,
        "date": "2020-12-18T13:00:00Z"
      },
      "job": {
        "id": "f2a837d2-1a9c-4387-89d7-0243bbfe6ba9",
        "averageDuration": 590,
        "name": "HelloWorld",
        "group": "",
        "project": "ProjectEXAMPLE",
        "description": "",
        "href": "http://localhost:4440/api/36/job/f2a837d2-1a9c-4387-89d7-0243bbfe6ba9",
        "permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/f2a837d2-1a9c-4387-89d7-0243bbfe6ba9"
      },
      "description": "echo \"hi\"",
      "argstring": null,
      "serverUUID": "94ac86b1-56e9-4bc3-9a4c-50cd7c8a5b59",
      "successfulNodes": [
        "localhost"
      ]
    },
  ]
}

我捕获的输出如下

Job ID is : 691

项目名称:项目-D 工作名称:关键问题 状态:成功 用户描述:管理员

工作编号:690 项目名称:项目-Y JobName:服务器检查 状态:成功 用户描述:John

工作编号:689 项目名称:项目-D JobName:再次检查密钥错误 状态:成功 用户描述:管理员

因此,当我在Csv文件中写入它时,我得到的输出是 OUTPUT I HAVE GOT

所需的输出格式为: enter image description here

你能帮我做些什么吗

提前谢谢


Tags: csvnameimportprojectidjsonlocalhosthttp
1条回答
网友
1楼 · 发布于 2024-09-30 06:14:57

我认为根据您的编码方法,没有必要使用csv模块。使用下面的代码段写出每一行。此外,您还可以为所有响应元素创建一个简单的函数,以简化代码

res_list = []
with open('ExecOutput.csv','w') as writer:
    for a in i:

        try:
            if (a['id']==0):
                print("Is empty")
                res_list.append('')
            else:
                print("Job ID is : " + str(a['id'])) 
                res_list.append(str(a['id']))
               
        except KeyError:
            print("Job ID: Key error issue, Check input again")

        try:
            if(a['project']==0):
                print("Project data not available")
                res_list.append('')
            else:
                print("Project Name: "+a['project'])
                res_list.append(str(a['project']))
                
        except KeyError:
            print("Project Name: Key error issue, Check input again")

        try:
            if(a['name']):
                print("Job Name not available")
                res_list.append('')
            else:
                print("JobName: "+a['name'])
                res_list.append(str(str(a['name'])))
        except KeyError:
            print("JobName: key Error check again")
        
        writer.write(','.join(res_list) + '\n')

相关问题 更多 >

    热门问题