将嵌套数据从json文件导入pandas

时间:2016-04-19 10:02:59

标签: python json pandas

我有一个生成的文件如下:

[{"intervals": [{"overwrites": 35588.4, "latency": 479.52}, {"overwrites": 150375.0, "latency": 441.1485001192274}], "uid": "23"}]

由于空间原因,我对文件进行了一些简化(除了“覆盖”和“延迟”之外还有更多的列)。我想将数据导入数据帧,以便稍后我可以绘制延迟。我尝试了以下方法:

with open(os.path.join(path, "my_file.json")) as json_file:
   curr_list=json.load(json_file)   
    df=pd.Series(curr_list[0]['intervals'])

print df 

返回:

0 {u'overwrites':35588.4,u'latency ...

1 {u'overwrites':150375.0,u'latency ...

但是我无法将df存储在允许我访问延迟字段的数据结构中,如下所示:

graph = df[['latency']]
graph.plot(title="latency")

有什么想法吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我认为您可以使用json_normalize

import pandas as pd
from pandas.io.json import json_normalize

data = [{"intervals": [{"overwrites": 35588.4, "latency": 479.52}, 
                       {"overwrites": 150375.0, "latency": 441.1485001192274}], 
         "uid": "23"}]


result = json_normalize(data, 'intervals', ['uid'])
print result
    latency  overwrites uid
0  479.5200     35588.4  23
1  441.1485    150375.0  23