Python不打印JSON文件内容

时间:2018-11-29 11:03:56

标签: python json python-2.7

我正在尝试加载我拥有的json文件,但我一直收到错误消息:

raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 2 column 1 - line 27 column 1 (char 48 - 1512)

我的代码如下:

def main():
    with open('statement.json', 'r') as f:
        data = json.load(f)
    print (data)

if __name__ == "__main__":
    main()

JSON文件如下:

{"File Size": "16281", "File Name": "apple.json"}
{"File Size": "128706", "File Name": "banana.json"}
{"File Size": "47366083", "File Name": "carrot.json"}
{"File Size": "7484", "File Name": "pear.json"}

2 个答案:

答案 0 :(得分:1)

输入不是有效的JSON对象,而是newline-delimited JSON

您应该使用:

with open('statement.json', 'r') as f:
    for line in f:
        data = json.loads(line)
        print (data)

打印每个JSON文档(每一行)。

答案 1 :(得分:0)

您的JSON错误。一个文件中有多个JSON对象。您需要将它们全部放入列表。

您可能会有这样的顶级列表。

[
    {"File Size": "16281", "File Name": "apple.json"},
    {"File Size": "128706", "File Name": "banana.json"},
    {"File Size": "47366083", "File Name": "carrot.json"},
    {"File Size": "7484", "File Name": "pear.json"}
]

或创建一个全新的对象并将其放入列表中,类似这样

{
    "file_list":[
        {"File Size": "16281", "File Name": "apple.json"},
        {"File Size": "128706", "File Name": "banana.json"},
        {"File Size": "47366083", "File Name": "carrot.json"},
        {"File Size": "7484", "File Name": "pear.json"}
    ]
}