Python 连接多个JSON响应

Python 连接多个JSON响应,python,arrays,json,pandas,concatenation,Python,Arrays,Json,Pandas,Concatenation,我尝试连接来自XHR的几个JSON响应 我有一个XHR列表,我想通过,并把所有的结果在同一个CSV。我知道我可能应该在循环之外写入CSV,但最初我只是希望它能够工作。我在最后做了两个评论,这是我没有去工作的部分。我也在结尾加了一个休息,这样你就不必经历所有的事情 import requests import pandas as pd from pandas.io.json import json_normalize import csv import json h = {

我尝试连接来自XHR的几个JSON响应

我有一个XHR列表,我想通过,并把所有的结果在同一个CSV。我知道我可能应该在循环之外写入CSV,但最初我只是希望它能够工作。我在最后做了两个评论,这是我没有去工作的部分。我也在结尾加了一个休息,这样你就不必经历所有的事情

import requests
import pandas as pd
from pandas.io.json import json_normalize
import csv
import json
    


h = {
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
     'X-Requested-With': 'XMLHttpRequest',
}

#VARIABLES
i=0

projects = "https://cdn-search-standard-prod.azureedge.net/api/v1/tags/all/2af3c43b-98aa-49d8-b4ff-da6d5a992751" 

y=requests.get(projects,headers=h).json()
df=pd.json_normalize(y)
df.to_csv(r'C:\Users\abc\Documents\Python Scripts\ListOfProjects_20200628.csv', index=False, sep=';',encoding='utf-8')

export=[]
i=29

for y in y:
    print(str(df.id[i]))
    u = "https://cdn-search-standard-prod.azureedge.net/api/v1/search/getstageobjects/"+str(df.id[i])
    i = i+1
    units = requests.get(u,headers=h).json()
    dp=pd.DataFrame(units)
    dp = pd.json_normalize(units)

    dp.to_csv(r'C:\Users\abc\Documents\Python Scripts\Units_20200628.csv', index=False, sep=';',encoding='utf-8')
    #export = pd.concat([export,dp], ignore_index=False, sort=False)
    #export.to_csv(r'C:\Users\abc\Documents\Python Scripts\Units_20200628.csv', index=False, sep=';',encoding='utf-8')
    break

这里有一个方法。将所有“部分”数据帧保留在一个列表中,然后使用
pd.concat
创建一个大数据帧。然后,您可以使用
将这个大数据帧保存到\u csv
。以下是代码的相关部分:

df_list = []

for y in y[:10]: # for development purpose - iterate over 10 URLs only
    print(str(df.id[i]))
    u = "https://cdn-search-standard-prod.azureedge.net/api/v1/search/getstageobjects/"+str(df.id[i])
    i = i+1
    units = requests.get(u,headers=h).json()
    dp=pd.DataFrame(units)
    dp = pd.json_normalize(units)
    df_list.append(dp)

res = pd.concat(df_list)
res.to_csv("final_result.csv")

代码的第一行看起来很有趣:“y中的y”。还有,h是什么?请包括复制您的问题/问题所需的所有代码。好的,可以。我只是想聪明点,限制行数:-)那也不错。如果有太多的代码,就把它简化成更简单的代码。Roy2012,我现在已经更新了,太棒了!这正是我想要的答案!你能不能很快给我一个建议,告诉我如何在我的csv(最左边)中添加一列,在那里我存储项目ID(我正在迭代的项目ID),这样我就可以在我创建的csv中过滤出不同的项目?在将其添加到列表之前,请执行dp[“project_ID”]=123。放你想要的东西,而不是123。对于你正在下载的其中一个URL,y[“id”]是d933ae51-bc42-e611-8139-c4346bad5070。你能做的是dp[“proj_id]=y[“id”]。这个特定数据框中的所有行都会有这个值,因为proj_idI看到不同的JSON有不同的列。不要认为这是个问题,但我会再次验证。(选中。根本不是问题)。