![](/img/trans.png)
[英]Write data from multiple input CSV file to a single CSV in column format
[英]Write data into csv file in single column
我能够使用 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")
output 是
{
"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"
]
},
]
}
我正在捕获 output 如下
Job ID is : 691
项目名称:Project - D JobName:关键问题状态:成功用户描述:admin
作业 ID 为:690 项目名称:项目 - Y 作业名称:服务器检查状态:成功用户描述:John
Job ID 为:689 项目名称:Project -D JobName:key 再次检查错误状态:成功用户描述:admin
所以当我在 Csv 文件中写它时,我得到的 output 是
你能帮我在哪里做改变吗?
提前致谢
根据您的编码方法,我认为没有必要使用csv模块。 使用下面的代码段来编写每一行。 此外,您可以为所有响应元素创建一个简单的 function 以简化您的代码。
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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.