如何使用Python导入多个JSON文件并将其转储到同一个CSV上?
我有一个端点列表(上面只是一个示例,实际列表要大得多)。如何使用Python导入多个JSON文件并将其转储到同一个CSV上?,python,json,csv,Python,Json,Csv,我有一个端点列表(上面只是一个示例,实际列表要大得多)。 我想获取这些JSON文件的数据并将它们附加到一个CSV中。这里是一个python3示例 URLs = ['https://cornershopapp.com/api/v2/stores?locality=+01020&country=MX', 'https://cornershopapp.com/api/v2/stores?locality=+01110&country=MX', 'https://cornershop
我想获取这些JSON文件的数据并将它们附加到一个CSV中。这里是一个python3示例
URLs = ['https://cornershopapp.com/api/v2/stores?locality=+01020&country=MX',
'https://cornershopapp.com/api/v2/stores?locality=+01110&country=MX',
'https://cornershopapp.com/api/v2/stores?locality=+01210&country=MX']
这些示例链接的数据结构是分层的,因此将其扁平化为CSV结构是非常重要的。有很多方法可以做到这一点,但我不认为这是一种你可以在stackoverflow上快速回答的问题。也许其他人知道一个我不知道的库,但我建议阅读“。这个代码段利用了
请求库,这是一个事实上的Python库,用于处理任何与HTTP相关的内容
此脚本将把url
中URL的JSON转储到当前工作目录中的output.csv
编辑:正如其他人所指出的,如果您想取消这些端点的JSON测试,您需要做更多的工作,我建议您检查pandas和OR,研究递归并实现自己的取消嵌套功能
import csv, json, sys
import urllib.request
outputFile = open("test.csv", 'w') #load csv file
with urllib.request.urlopen("https://cornershopapp.com/api/v2/stores?locality=+01020&country=MX") as url:
data = json.loads(url.read().decode())
#print (data)
output = csv.writer(outputFile) #create a csv.write
output.writerow(data[0].keys()) # header row
for row in data:
output.writerow(row.values()) #values row
我同意这种方法,但最终会出现需要额外解包的列,不是吗?例如,其中一列将是存储
,其中实际上包含存储id
,名称
,等等。非常感谢您的回复。因为最终我只希望在最近的分支中包含所有内容,我想最好的解决方案应该是只查询并转储这部分内容,而不是将文件展平并转储所有内容。你怎么认为?
import json
import csv
import requests
URLs = ['https://cornershopapp.com/api/v2/stores?locality=+01020&country=MX',
'https://cornershopapp.com/api/v2/stores?locality=+01110&country=MX',
'https://cornershopapp.com/api/v2/stores?locality=+01210&country=MX']
with open('output.csv', 'w') as url_file:
# create CSV writer object
url_writer = csv.writer(url_file, delimiter=',')
for u in URLs:
response = requests.get(u).text
json_response = json.loads(response)
url_writer.writerow(json_response)