2

ファイルにきれいな印刷形式で保存された大きな JSON ドキュメントがあります。ファイルは次のようになります。

$ nano data.json

{
"type" : "object",
"properties" : {
  "price" : {"type" : "number"},
  "name" : {"type" : "string"},
  },
}

このようなjsonファイルを読み取るために私が見つけた従来の方法は...

with open('data.json', 'r') as handle:
    data = json.load(handle)

と...

json_data=open('data.json','r')
data = json.load(json_data)
json_data.close()

と...

data = []
with open('data.json') as f:
    for line in f:
        data.append(json.loads(line))

と...

ss = ''
with open('data.json', 'r') as f:
    for line in f:
        ss += ''.join(line.strip())

data = json.loads(ss.decode("utf-8","replace"))

...きれいに印刷された形式のJSONではなく、単一の文字列でのみ機能するようです。

この形式の JSON をファイルからロードするにはどうすればよいですか? これらのフォーマットを試したときに発生し続けるエラーは...

Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 250 (char 250)

ValueError: Expecting , delimiter: line 9 column 13 (char 310)
4

1 に答える 1

2

私がこれを投稿したときと同様のことを将来グーグルで見つけた他の人にとっては、あなたのエラーは読み込みにあると思うかもしれませんが、上記の私のエラーは実際には読み込みではなくJSON自体にありました(Martijnとして)ピーターズは指摘した)。私は jsonschema python プロジェクトからスキーマをコピーしていましたが、これは JSON ではなく、一見似たような python 辞書であることが判明しました。

于 2013-07-22T18:08:06.677 に答える