[英]Reading JSON file with Python 3
I'm using Python 3.5.2 on Windows 10 x64.我在 Windows 10 x64 上使用 Python 3.5.2。 The
JSON
file I'm reading is this which is a JSON
array containing 2 more arrays.我正在阅读的
JSON
文件是这个JSON
数组,其中包含另外 2 个数组。
I'm trying to parse this JSON
file using the json
module.我正在尝试使用
json
模块解析这个JSON
文件。 As described in the docs the JSON
file must be compliant to RFC 7159
.如文档中所述,
JSON
文件必须符合RFC 7159
。 I checked my file here and it tells me it's perfectly fine with the RFC 7159
format, but when trying to read it using this simple python code:我在这里检查了我的文件,它告诉我使用
RFC 7159
格式非常好,但是当尝试使用这个简单的 python 代码读取它时:
with open(absolute_json_file_path, encoding='utf-8-sig') as json_file:
text = json_file.read()
json_data = json.load(json_file)
print(json_data)
I'm getting this exception:我得到了这个例外:
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 2217, in <module>
globals = debugger.run(setup['file'], None, None)
File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 1643, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/Andres Torti/Git-Repos/MCF/Sur3D.App/shapes-json-checker.py", line 14, in <module>
json_data = json.load(json_file)
File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
I can read this exact file perfectly fine on Javascript but I can't get Python to parse it.我可以在 Javascript 上完美地读取这个确切的文件,但我无法让 Python 解析它。 Is there anything wrong with my file or is any problem with the Python parser?
我的文件有问题还是 Python 解析器有问题?
Try this 尝试这个
import json
with open('filename.txt', 'r') as f:
array = json.load(f)
print (array)
Based on reading over the documentation again, it appears you need to either change the third line to 在再次阅读文档的基础上,您似乎需要将第三行更改为
json_data = json.loads(text)
or remove the line 或删除该行
text = json_file.read()
since read()
causes the file's index to reach the end of the file. 因为
read()
导致文件的索引到达文件的末尾。 (I suppose, alternatively, you can reset the index of the file). (我想,或者,您可以重置文件的索引)。
For python3, only the below worked for me - none of the above.对于 python3,只有以下对我有用 - 以上都不是。
import json导入json
with open('/emp.json', 'r') as f:使用 open('/emp.json', 'r') 作为 f:
data=f.read()
print(data)打印(数据)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.