如何将字典附加到pandas数据帧?

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数据帧的第一列

zuk*_*uku 6

对我来说代码的作用如下:

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()并且有一个对应[]