【发布时间】:2018-10-12 12:12:14
【问题描述】:
我正在尝试将从 REST API 返回的响应写入 csv 文件。由于有多个请求,我对请求一一调用 API。因此,会有多个响应。我无法实现所需的格式。
所需格式:
name,job,id,createdAt
morpheus,leader,727,2018-10-12T12:04:39.234Z
Mark,SSE,925,2018-10-12T12:04:40.200Z
Taylor,SE,247,2018-10-12T12:04:41.115Z
代码:
import requests
url ='https://reqres.in/api/users'
data =[{
"name": "morpheus",
"job": "leader"
},
{"name":"Mark",
"job":"SSE"},
{"name":"Taylor",
"job":"SE"}
]
with open('response.csv','w') as f:
for element in data:
r=requests.post(url,json=element)
response = json.loads(r.text)
for key in response.keys():
#f.write("%s,%s"%(key,response[key]))
【问题讨论】:
-
你在写 csv:先写出响应的标题,一次,然后写出不带标题的数据。
-
如果你可以导入外部包,pandas 有一个很好的 from_records 构造函数,它将从 json 记录创建一个表,然后是一个很好的 to_csv 方法来写出一个 csv 文件。如果你的 json 数据每次都被严格格式化,这将需要两行代码来编写。