pandas 归一化简单 JSON

pandas normalize simple JSON

我有一个简单的 JSON 数据,例如:

[{
    "load": 1,
    "results": {
        "key": "A",
        "timing": 1.1
    }
}, {
    "load": 2,
    "results": {
        "key": "B",
        "timing": 2.2
    }
}]

尝试将其加载到 pandas 时:

pd.read_json('res.json')

结果如下:

但不是将 keyvalue 作为单独的列,它们仍然是嵌套的。 如何将这些归一化?

使用json.json_normalize:

data = [{
    "load": 1,
    "results": {
        "key": "A",
        "timing": 1.1
    }
}, {
    "load": 2,
    "results": {
        "key": "B",
        "timing": 2.2
    }
}]

from pandas.io.json import json_normalize
df = json_normalize(data)
print (df)
   load results.key  results.timing
0     1           A             1.1
1     2           B             2.2

如果需要来自文件的数据:

from pandas.io.json import json_normalize
import json

with open('sample.json') as f:    
    data = json.load(f)  

df = json_normalize(data)