我正在从Police.uk的API中读取数据作为JSON文件,然后遍历该文件以将数据传递到pandas数据帧中。我用来从JSON提取并放入DataFrame的循环进行得非常缓慢。警察API一次只允许您下载一个月的数据。因此,我使用了一个日期列表和一个循环来下载一个月以上的数据。代码如下。有什么办法可以改进这个循环,让它运行得更快吗?我想从API下载更多数据。import pandas as pdimport numpy as npimport requestsimport jsonimport matplotlib.pyplot as pltimport datetime%matplotlib inlineplt.rcParams['figure.figsize'] = (10, 5)#Create list of periods to download data forperiods = ['2017-03', '2017-04', '2017-05', '2017-06']#Create empty list to store retrieved JSON datadata = []警察 API 网址url = 'https://data.police.uk/api/crimes-street/all-crime'循环下载数据并追加列表for date in periods: parameters = {'poly': '51.6,0.06:51.6,0.2:51.5,0.2:51.5,0.062', 'date': date} #Query API for data response = requests.get(url, params=parameters) data += json.loads(response.content) print(len(data))创建空数据框df = pd.DataFrame()============================================---这是运行很慢的部分-----将JSON文件中的相关部分提取到Dataframe中for i in range(len(data)): df.loc[i, 'id'] = data[i]['id'] df.loc[i, 'category'] = data[i]['category'] df.loc[i, 'month'] = data[i]['month'] df.loc[i, 'latitude'] = data[i]['location']['latitude'] df.loc[i, 'longitude'] = data[i]['location']['longitude']==============================================
添加回答
举报
0/150
提交
取消