连接多个 JSON 响应

我尝试连接来自 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


白猪掌柜的
浏览 85回答 1
1回答

30秒到达战场

这是一种方法。将所有“部分”数据框保存在列表中,然后使用pd.concat. 然后,您可以使用保存这个大数据框to_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")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python