1

exampleData.json という名前の次の Python ファイルがあります。

[
  {
    "startTime" : 1383790636.261329,
    "confidence" : 2,
    "type" : 3,
    "startTime2" : "2013-11-06 21:17:16.261",
    "duration" : 4.287207
  },
  {
    "startTime" : 1383790640.548536,
    "confidence" : 2,
    "type" : 3,
    "startTime2" : "2013-11-06 21:17:20.549",
    "duration" : 3.674701
  },
  {
    "startTime" : 1383790644.223238,
    "confidence" : 2,
    "type" : 3,
    "startTime2" : "2013-11-06 21:17:24.223",
    "duration" : 7.35066
  }
]

(実際のファイルには約 1000 ブロックあります。ここでは 3 つ貼り付けただけです)。jsonlint.com を使用して JSON ファイル全体を検証しましたが、有効な JSON です。

jsonGraph.py という名前の次のプログラムを実行して、コードを Python に入力しようとしています。

import json
import pprint

data = []
with open('D:/Users/Vik/Downloads/exampleData.json') as data_file:
    for line in data_file:
        data.append(json.loads(line))

問題は、プログラムを実行しようとすると、次のエラーが発生することです。

D:\Users\Name>py D:\Users\Name\Downloads\jsonGraph.py
Traceback (most recent call last):
  File "D:\Users\Name\Downloads\jsonGraph.py", line 7, in <module>
    data.append(json.loads(line))
  File "D:\Python33\lib\json\__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "D:\Python33\lib\json\decoder.py", line 352, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\Python33\lib\json\decoder.py", line 368, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting object: line 1 column 2 (char 1)

このエラーの原因についてのアイデアはありますか?

私はエラーメッセージをグーグルで調べました.このウェブサイトには同様のエラーのある同様の投稿がありますが、この質問は2つの理由でユニークです.少し異なるエラー メッセージ。Pythonのドキュメントも確認しましたが、洞察は見つかりませんでした。

4

2 に答える 2

3

ファイルが指定したとおりであれば、1 行ずつロードするのではなく、ファイル全体をロードする必要があります。

于 2013-11-07T21:06:41.957 に答える
2

大きな JSON オブジェクトが1 つあります。次のように 1 つに解析しjson.load()ます。

import json

with open('D:/Users/Vik/Downloads/exampleData.json') as data_file:
    data = json.load(data_file)

コードは各行を JSON 値として処理しようとします。[(最初の行) は完全な JSON 値ではなく、次の数行を組み合わせても機能しないため、これは機能しません。

于 2013-11-07T21:06:51.417 に答える