Blu*_*oon 10 python json dictionary for-loop pandas
我有一组包含json文件的URL和一个空的pandas数据框,其中的列表示jsnon文件的属性.并非所有json文件都具有pandas数据帧中的所有属性.我需要做的是从json文件中创建字典,然后将每个字典作为新行追加到pandas数据帧中,如果json文件没有与数据帧中的列匹配的属性,则必须填空白.
我设法创建了词典:
import urllib2
import json
url = "https://cws01.worldstores.co.uk/api/product.php?product_sku=ULST:7BIS01CF"
data = urllib2.urlopen(url).read()
data = json.loads(data)
Run Code Online (Sandbox Code Playgroud)
然后我尝试创建一个for循环,如下所示:
row = -1
for i in links:
row = row + 1
data = urllib2.urlopen(str(i)).read()
data = json.loads(data)
for key in data.keys():
for column in df.columns:
if str(column) == str(key):
df.loc[[str(column)],row] = data[str(key)]
else:
df.loc[[str(column)],row] = None
Run Code Online (Sandbox Code Playgroud)
其中df是数据帧,链接是url的集合
但是,我收到以下错误:
raise KeyError('%s not in index' % objarr[mask])
KeyError: "['2_seater_depth_mm'] not in index"
Run Code Online (Sandbox Code Playgroud)
其中['2_seater_depth_mm']是pandas数据帧的第一列
对我来说代码的作用如下:
row = -1
for i in links:
row = row + 1
data = urllib2.urlopen(str(i)).read()
data = json.loads(data)
for key in data.keys():
df.loc[row,key] = data[key]
Run Code Online (Sandbox Code Playgroud)
你有混合的参数顺序,.loc()并且有一个对应[]