我正在寻找有关使用 Python 将 API 结果写入 .CSV 文件的帮助。此时,我已成功写入 .CSV,但我似乎无法确定我正在寻找的 .CSV 格式背后的代码,这是标准的一个字段 = 一列格式。
任何帮助表示赞赏!详情如下。谢谢!
我的代码:
import requests
import json
import csv
urlcomp = 'http://url_ommitted/api/reports/completion?status=COMPLETED&from=2016-06-01&to=2016-08-06'
headers = {'authorization': "Basic API Key Ommitted", 'accept': "application/json", 'accept': "text/csv"}
## API Call to retrieve report
rcomp = requests.get(urlcomp, headers=headers)
## API Results
data = rcomp.text
## Write API Results to CSV
with open('C:_Python\\testCompletionReport.csv', "wb") as csvFile:
writer = csv.writer(csvFile, delimiter=',')
for line in data:
writer.writerow(line)
上面的代码创建了一个具有正确输出的 .CSV,但它将 API 结果中的每个字符写入输出文件 A 列中的一个新单元格。 截图如下:
我还尝试了下面的代码,它将整个 API 结果集写入 .CSV 输出文件的单个单元格中。
代码:
data = rcomp.text
with open('C:_Python\\CompletionReportOutput.csv', 'wb') as csvFile:
writer = csv.writer(csvFile, delimiter = ',')
writer.writerow([data])
输出:
编辑 - 示例 API 响应:
“包裹已创建”,“包裹 ID”,“包裹名称”,“包裹状态”,“包裹已损坏”,“包裹已更新”,“发件人 ID”,“发件人姓名”,“发件人公司”,“发件人已创建”, “发件人电子邮件”,“发件人名字”,“发件人语言”,“发件人姓氏”,“发件人电话”,“发件人职位”,“发件人更新”,“发件人激活”,“发件人锁定”,“发件人状态”, “发件人类型”“2016 年 8 月 4 日星期四 14:52:57 CDT”,“ulw5MTQo8WjBfoCTKqz9LNCFpV4=“,“TestOne 到 TestTwo - 已删除 PDF 拼合”,“已完成”,“假”,“8 月 4 日星期四 14:53:30 CDT” 2016”,“tKpohv2kZ2oU”,“”,“”,“2016-08-03 14:12:06.904”,“testaccount@test.com”,“John”,“en”,“Smith”,“”,” “,“2016-08-03 14:12:06.942118”,“null”,“null”,“INVITED”,“REGULAR” “2016 年 8 月 4 日周四 09:39:22 CDT”,“IJV3U_yjPlxS-TVQgMrNgVUUSss=”, “TestOne 到 TestTwo - 电子邮件测试”,“已完成”,“假”,“2016 年 8 月 4 日星期四 10:11:29 CDT”,“tKpohv2kZ2oU”,“”,“”,“2016-08-03 14:12: 06.904”,“testaccount@test.com”,“John”,“en”,“Smith”,“”,“”,“2016-08-03 14:12:06.942118”,“null”,“null”, “邀请”、“常规”
第二次编辑 - Lee 建议的输出:
原文由 jdgaub 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以,我最终偶然发现了一个解决方案。不确定这是否是处理此问题的“正确”方式,但下面的代码将 API 结果直接写入具有正确列格式的 .CSV 中。