从Fi解析多个JSON对象

2024-04-24 04:57:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件,其中包含以下内容

[
{"ID": 1, "timestamp": 10, "startingFloor": 1, "eventType": "enter"}, 
{"ID": 1, "timestamp": 10, "eventType": "call", "noOfCalls": 1}, 
{"ID": 1, "timestamp": 10, "startingFloor": 1, "eventType": "board"}, 
{"ID": 1, "timestamp": 10, "eventType": "weight", "currentLoad": 53},
{"ID": 1, "timestamp": 36, "eventType": "call", "noOfCalls": 2},  
{"ID": 2, "timestamp": 50, "eventType": "call", "noOfCalls": 3}, 
{"ID": 2, "timestamp": 15, "eventType": "call", "noOfCalls": 1}, 
{"ID": 2, "timestamp": 38, "eventType": "weight", "currentLoad": 84},
{"ID": 2, "timestamp": 27, "eventType": "call", "noOfCalls": 2}, 
{"ID": 2, "timestamp": 36, "startingFloor": 2, "eventType": "enter"}, 
{"ID": 3, "timestamp": 50, "startingFloor": 3, "eventType": "enter"}, 
{"ID": 4, "timestamp": 38, "startingFloor": 4, "eventType": "board"}, 
{"ID": 4, "timestamp": 27, "startingFloor": 4, "eventType": "enter"},
{"ID": 5, "timestamp": 15, "startingFloor": 5, "eventType": "enter"}
]

我需要能够拉出这个文件的每一行,以便与它进行类似于字典的交互(对于一个非常简单的例子,我需要找到最高的noOfCalls值)。在

问题是该文件是一系列JSON对象,所以我以前使用过的读取JSON文件的常规方法不起作用,例如

^{pr2}$

我尝试过其他方法,例如尝试将每个对象拉出并将其附加到一个列表中,例如:

data = []
for line in open('input.json','r'):
    data.append(json.loads(line))

但这个版本也没用。在

我也尝试过其他各种方法,但总是以“额外数据”、“期望值”等错误告终

如果有任何关于从一个文件解析多个JSON对象的信息,我们将不胜感激,很抱歉没有更多的代码示例,因为我尝试了很多次替换。在


Tags: 文件对象方法boardidjsondatacall
2条回答

似乎对我有用

    import json
    with open('input.json') as fr:
    data = json.loads(fr.read())

    for line in data:
        if 'noOfCalls' in line :
            print line['noOfCalls']

试试这个:

with open('input.json') as data_file:
    data = json.loads(data_file.read())

相关问题 更多 >