如何解决Pandas:Dataframe 只有一个条目
我目前正在比较来自不同来源的德国电晕数据。为此,我使用了 RKI API 并将以下内容作为 Pandas 数据框:
0 ObjectId [{'name': 'IdBundesland','type': 'esriFieldTy... True [{'attributes': {'IdBundesland': 5,'Bundeslan... ObjectId True
但是这个输出是错误的,因为它只有一个条目并且条目看起来不像它应该的。有谁知道可能是什么原因?也许 pd.json_normalize(r_json)
但没有这个我会得到一个 ValueError。
import requests
import pandas as pd
from pandas.io.json import json_normalize
import json
link = 'https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?where=1%3D1&outFields=*&outSR=4326&f=json'
payload = {}
response = requests.request(
method='get',url=link,params=payload,timeout=5
)
r_json = response.json()
r_json = pd.json_normalize(r_json)
# print(response.status_code)
# print(r_json)
df = pd.DataFrame.from_dict(r_json)
print(df)
解决方法
我认为您的请求查询过于复杂:
检查波纹管网站后,您似乎可以在 url 中使用“resultOffset”来遍历整个数据集。
import requests
import pandas as pd
exceeded_transfer_limit: bool = True
offset: int = 0
result_df = pd.DataFrame()
while exceeded_transfer_limit:
base_url = f"https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/" \
f"FeatureServer/0/query?where=1%3D1&outFields=*&outSR=4326&resultOffset={offset}&f=json"
web_response = requests.get(url=base_url)
web_json = web_response.json()
print(web_json)
# print(type(web_json))
print(web_json.keys())
if 'exceededTransferLimit' in web_json.keys():
exceeded_transfer_limit = web_json['exceededTransferLimit'] #seems like this never return False,key just get ommited if not exceeded
else:
exceeded_transfer_limit=False
print(f"exceededTransferLimit: {exceeded_transfer_limit}")
result_df = result_df.append(pd.DataFrame([dict_row['attributes'] for dict_row in web_json['features']]))
offset += 5000
if len(result_df) >= 500000:
result_df.to_csv(f"covid_data_{offset}.csv",sep=',',index=False)
result_df = pd.DataFrame()
if len(result_df) > 0:
result_df.to_csv(f"covid_data_{offset}_final.csv",index=False)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。