如何使用Python导入多个JSON文件并将它们转储到同一CSV上?

2024-04-24 22:04:29 发布

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

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']

我有一个端点列表(上面只是一个例子-实际列表要大得多)。 我想得到这些JSON文件的数据,并将它们附加到一个CSV文件中。你知道吗


Tags: 文件httpscomapijson列表端点urls
3条回答

这里有一个python3的例子

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

这些示例链接的数据结构是分层的,因此将其扁平化为CSV结构是非常重要的。有很多方法可以做到这一点,但我不认为这是类型的问题,你可以很快回答在stackoverflow。也许有人知道我不知道的图书馆,但我建议你读一下“How to Flatten Deeply Nested JSON Objects in Non-Recursive Elegant Python”。你知道吗

这个代码段利用了requests库,它实际上是Python库,用于处理任何与HTTP相关的内容。你知道吗

这个脚本将把URLs中的url的JSON转储到当前工作目录中的output.csv。你知道吗

编辑:正如其他人所指出的,如果您想取消这些端点的JSON,您需要做更多的工作,我建议您检查pandas和json_normalize function,或者研究递归并实现自己的取消嵌套函数

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)

相关问题 更多 >