我设置了一个回收37900条记录的循环。由于url /服务器的设置方式,每个url中最多只能显示200条记录。每个url以'skip = 200'或200的倍数结尾,以循环到显示下一个200条记录的下一个url页面。最终,我想遍历所有网址并将它们附加为表格。相关发布的unable to loop the last url with paging limits
我创建了两个循环,如下所示-一个循环用于使用skip =每200条记录创建一个url,另一个循环获取每个url的响应,然后另一个循环读取json并将其附加到单个数据帧中。
我不确定第二个循环中缺少什么-到目前为止,它仅为第一个URL页面生成json,但不会为后续页面生成json。我觉得usl json不会附加到列表json = [],因此可以防止循环并将json附加到csv中。任何有关修改循环和改进这些代码的建议都将受到赞赏!
atom-text-editor
.syntax--comment {
color: red;
}
答案 0 :(得分:0)
我没有要测试的东西
我认为您对此过于复杂。此后,您已经编辑了问题,但有几点要说明:
jsnlist = []
,但从不使用它。为什么?json
(现在消失了,但是我不确定您是否理解为什么)。调用您自己的对象json
会取代实际的模块,整个代码在进入循环之前都会陷入停顿状态.json
)打开'w'
文件将在循环的每次迭代中擦除所有现有数据您的方法将是这样的:
import pandas as pd
import requests
import json
records = range(37900)
skip = records[0::200]
Page = []
for i in skip:
endpoint = "https://~/Projects?&$skip={}".format(i)
Page.append(endpoint)
jsnlist = []
for j in Page:
response = session.get(j) #session here refers to requests.Session() I had to set up to authenticate my access to these urls
responsejs = response.json()
responsejsval = responsejs['value'] #I only want to extract header called 'value' in each json
jsnlist.append(responsejsval)
df = pd.DataFrame(jsnlist)
df = pd.DataFrame(jsnlist)
可能需要做一些工作,但是您需要证明我们面临的挑战。我需要看到responsejs['value']
才能完整回答。