我的功能有奇怪的问题。
当我调用函数_read_page时,它工作正常。 当我在下面的循环中运行代码时,它可以工作,但仅进行几次迭代,然后中断。 当我在“ while循环”中调用每一行时,它可以工作,但是经过几次迭代后,_read_page函数不会返回任何值,也不会将其分配给y。但这似乎很好,函数_read_page不返回任何错误。此后,下一步pd.concat返回有关NoneType对象的错误。
重要的是,当我再次使用相同的参数调用_read_page时,它会返回值并将值分配给y。
编辑:
它以命令fin = req.json()
你知道是什么问题吗?
可能是由于内存不足或类似原因引起的吗?
谢谢你,抱歉我的英语...
...
x_df = pd.DataFrame()
first_pass = True
y = {"total_count": 0}
continuous_count = 0
while first_pass or continuous_count < y["total_count"]:
first_pass = False
y = _read_page(pods_url=pods_url,
auth=auth,
data=data)
x_df = pd.concat([x_df,
y["data"]["Data"]], ignore_index=False)
scroll_id = y["data"]["ScrollId"][0]
data["ScrolledFilterRequest"].update({"ScrollId": scroll_id})
continuous_count = continuous_count + page_size
...
def _read_page(pods_url, auth, data, dataframe=True):
try:
url = pods_url + "api/v1/Catalog/NestScrollApi"
req = requests.post(url=url, auth=auth, verify=False, json=data)
if req.status_code != 200:
df = pd.DataFrame()
fin = {"TotalCount": 0}
else:
fin = req.json()
df = pd.DataFrame(fin)
return {"data": df,
"total_count": fin["TotalCount"],
"response": req.status_code}
except Exception as e:
print(e)
答案 0 :(得分:0)
最后,它是 MemoryError 。
fin = req.json()in json self.content.decode(encoding), **kwargs MemoryError
行中有错误
解决方案是将32位版本的Python更改为64位版本的Python,并且可以正常工作,而无需更改代码。