我无法用 python 解析 json 文件
I can't parse a json file with python
先post这里
我已经使用 Python 一段时间了,但我遇到了一个非常简单的案例。
我只想用 simplejson 模块解析一个 JSON 文件:代码如下:
import simplejson
with open('myjsontest.json', 'r') as data_file:
print data_file.read()
session = simplejson.load(data_file, strict=False)
这是名为 myjsontest.json 的 JSON 文件:
[
{
"Test1": 1,
"Test2": 2,
"Test3": 3,
"Test4": 4
}
]
JSON 文件与 python 文件位于同一文件夹中。
我得到了这个结果:
[
{
"Test1": 1,
"Test2": 2,
"Test3": 3,
"Test4": 4
}
]
Traceback (most recent call last):
File ".\test.py", line 8, in <module>
session = simplejson.load(data_file, strict=False)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\__init__.py", line 459, in loa
d
use_decimal=use_decimal, **kw)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\__init__.py", line 533, in loa
ds
return cls(encoding=encoding, **kw).decode(s)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\decoder.py", line 370, in deco
de
obj, end = self.raw_decode(s)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\decoder.py", line 400, in raw_
decode
return self.scan_once(s, idx=_w(s, idx).end())
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\scanner.py", line 127, in scan
_once
return _scan_once(string, idx)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\scanner.py", line 87, in _scan
_once
raise JSONDecodeError(errmsg, string, idx)
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我想我的 OS/python 设置可能有问题? Python 32b 2.7.11 与 Anaconda 一起安装在 Windows7 64b 上。
谢谢,如果你能帮忙。
一旦你read
一个文件,它的流就在最后,不能再从中读取。如果您删除 print data_file.read()
语句,或者您之后 .seek()
回到文件的开头,您的代码应该可以工作。
先post这里
我已经使用 Python 一段时间了,但我遇到了一个非常简单的案例。
我只想用 simplejson 模块解析一个 JSON 文件:代码如下:
import simplejson
with open('myjsontest.json', 'r') as data_file:
print data_file.read()
session = simplejson.load(data_file, strict=False)
这是名为 myjsontest.json 的 JSON 文件:
[
{
"Test1": 1,
"Test2": 2,
"Test3": 3,
"Test4": 4
}
]
JSON 文件与 python 文件位于同一文件夹中。
我得到了这个结果:
[
{
"Test1": 1,
"Test2": 2,
"Test3": 3,
"Test4": 4
}
]
Traceback (most recent call last):
File ".\test.py", line 8, in <module>
session = simplejson.load(data_file, strict=False)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\__init__.py", line 459, in loa
d
use_decimal=use_decimal, **kw)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\__init__.py", line 533, in loa
ds
return cls(encoding=encoding, **kw).decode(s)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\decoder.py", line 370, in deco
de
obj, end = self.raw_decode(s)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\decoder.py", line 400, in raw_
decode
return self.scan_once(s, idx=_w(s, idx).end())
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\scanner.py", line 127, in scan
_once
return _scan_once(string, idx)
File "C:\Users\Gordon\Anaconda2\lib\site-packages\simplejson-3.8.1-py2.7.egg\simplejson\scanner.py", line 87, in _scan
_once
raise JSONDecodeError(errmsg, string, idx)
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我想我的 OS/python 设置可能有问题? Python 32b 2.7.11 与 Anaconda 一起安装在 Windows7 64b 上。
谢谢,如果你能帮忙。
一旦你read
一个文件,它的流就在最后,不能再从中读取。如果您删除 print data_file.read()
语句,或者您之后 .seek()
回到文件的开头,您的代码应该可以工作。