我无法用 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() 回到文件的开头,您的代码应该可以工作。