首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个字典JSON文件转换为pandas数据帧

将多个字典JSON文件转换为pandas数据帧
EN

Stack Overflow用户
提问于 2017-04-14 22:37:38
回答 1查看 421关注 0票数 0

我有一个在线数据,格式如下:

代码语言:javascript
复制
{"headers": {"ai5": "3356", "debug": null, "random": null, "sd": "7.6"}, "post": {"event": "ggstart", "ts": "1462"}, "params": {}, "bottle": {"timestamp": "2016-05-09 02:00:00.033775", "game_id": "55107008"}}

{"headers": {"ai5": "8fa6", "debug": null, "random": null, "sd": "7.6"}, "post": {"event": "ggstart", "ts": "1475"}, "params": {}, "bottle": {"timestamp": "2016-05-09 02:00:00.004906", "game_id": "55107008"}}

我希望我必须将每一行都视为JSON格式来读取,并不断将它们添加到最终数据中:

代码语言:javascript
复制
data = []
with open('new.json') as f:
    for line in f:
        print(line)
        data.append(json.loads(line))

但是我收到了错误:

代码语言:javascript
复制
JSONDecodeError: Expecting value: line 2 column 1 (char 1)

有人能帮我理解一下我在这里遗漏了什么重点吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-14 22:48:59

这是因为您的文件中的中间行。它不是一个有效的json (实际上是一个空行),因此您将面临这个错误。

修复:

代码语言:javascript
复制
import json
data = []
with open('test.txt') as f:
    for line in f:
        try:
            data.append(json.loads(line.strip()))
        except ValueError:
            pass

print(data)

输出:

代码语言:javascript
复制
[{
'post': {
    'event': 'ggstart',
    'ts': '1462'
},
'bottle': {
    'timestamp': '2016-05-09 02:00:00.033775',
    'game_id': '55107008'
},
'headers': {
    'debug': None,
    'sd': '7.6',
    'random': None,
    'ai5': '3356'
},
'params': {}
}, 
{
    'post': {
        'event': 'ggstart',
        'ts': '1475'
    },
    'bottle': {
        'timestamp': '2016-05-09 02:00:00.004906',
        'game_id': '55107008'
    },
    'headers': {
        'debug': None,
        'sd': '7.6',
        'random': None,
        'ai5': '8fa6'
    },
    'params': {}
}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43413692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档