在python中读取JSON并将其转换为dataframe

时间:2016-06-08 21:56:09

标签: python json pandas

假设我有一个JSON文件,如下所示,

{u'level': u'INFO',
 u'message': {"method":"someMethod","params":{"frameId":"9.6","loaderId":"3.2","requestId":"4.6"}}
u'timestamp': 654789L}

为了将其解析为数据框,对于第一级,我可以执行data[1]['level']data[1]['message']data[1]['timestamp']。但我想更深入地了解消息,我正在尝试,data[1]['message']['method']data[1]['message']['params']这会让我犯错误。

TypeError: string indices must be integers

第一级和第二级之间的引号存在差异,其中第一级具有单引号,第二级具有双引号。谁能告诉我如何在这里达到方法或参数参数?将所有内容解析为数据框的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用pandas.read_json这将自动将文件读入DataFrame。

import pandas as pd

data = pd.read_json('test.json')

但您在问题中显示的数据不是有效的JSON格式。有关正确的格式,请参阅此example。要检查您的文件是否是有效的JSON格式,您还可以使用此validator。数据的有效JSON格式如下所示:

[{
    "level": "INFO",
    "message": [{
        "method": "someMethod",
        "params": [{
            "frameId": "9.6",
            "loaderId": "3.2",
            "requestId": "4.6"
        }]
    }],
    "timestamp": "654789 L"
}]