gpt4 book ai didi

python - 要在 python 中加载的 .json 文件的格式

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:46 25 4
gpt4 key购买 nike

这是我的JSON文件

[{"": "", "User ID": "913fd663bc66a452", "Description": "", "Timestamp": "Jul 09, 2014 10:33 PM", "Session Index": "2", "Platform": "Android", "Version": "0.2.9", "Params": "{ email : soleimaniarmin@yahoo.com;  comments : 09337845621;  stars : 4.0;  name : ari}", "Device": "Samsung Galaxy S4", "Event": "feedback"},{"": "", "User ID": "6e35346f9754b787", "Description": "", "Timestamp": "Jul 09, 2014 04:36 PM", "Session Index": "6", "Platform": "Android", "Version": "0.3.0", "Params": "{ email : eddgrow89@hotmail.com;  comments : i love My live ;  stars : 5.0;  name : eddy}", "Device": "Alcatel  One Touch 6033A", "Event": "feedback"},]

我正在尝试用 python 解析这个文件,代码如下:

import json
from pprint import pprint

with open('android/2014-07-09.json', 'rb') as json_file:
contents = json_file.read();
print contents;

data = json.loads(contents);
pprint(data);

但是当我执行它时出现以下错误..

ValueError: No JSON object could be decoded

如果我将 json.loads 替换为 json.load,则会发生以下错误。

  File "messenger.py", line 9, in <module>
data = json.load(contents);
File "/usr/lib/python2.7/json/__init__.py", line 286, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'

如何解开这个谜团。

最佳答案

首先,您应该将文件发送到 json.load 而不是将字符串发送到 json.loads。存储到变量中然后将其发送到解析器是不必要的开销。

with open('android/2014-07-09.json', 'rb') as json_file:
contents = json.load(json_file)

那么,您的文件不是有效的 json 文档。您可以使用任何工具对其进行测试,例如:

在您的情况下,问题是字符串末尾的逗号,就在结束 ] 之前。不仅如此,那个 json 文件中还有一些其他的“垃圾”。例如,Params 键包含一个字符串作为值,它恰好是一个 json 文档本身,而不是一些有用的数据。尽管这是有效的 json 格式,但我想不出它适用于什么情况。

总而言之:更改 json 文档的来源:)

编辑: 正如 Martijn Pieters 指出的那样,Params 实际上不是有效的 json 字符串,尽管它看起来像那样。但是话又说回来......得到一个合适的json文件!

关于python - 要在 python 中加载的 .json 文件的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com