【发布时间】:2016-10-09 09:06:22
【问题描述】:
假设我有一个如下的 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
第一级和第二级的引号不同,第一级用单引号,第二级用双引号。谁能告诉我如何在这里访问方法或参数参数?也是将所有内容解析为数据框的最佳方式?
谢谢
【问题讨论】:
-
尝试运行
data[1].keys()和data[1]['message'].keys()。 -
data[1].keys() 给出 [u'timestamp', u'message', u'level'] 但 data[1]['message'].keys 给出 AttributeError: 'unicode '对象没有属性'keys'
-
您的第一个示例不是 JSON,而是转换为字符串的 Python 字典。这也是错误的,因为您在第二行的两个 }} 之后缺少逗号。您还应该包含一个完整的(工作)代码示例,说明您正在尝试做什么,因为您所说的是错误与您的数据不匹配。