[解決済み] 複数のJSONオブジェクトを含むJSONファイルの読み込みとパース
2022-03-14 03:05:34
質問
でJSONファイルを読み込み、パースしようとしています。 Python . しかし、ファイルを読み込もうとして行き詰っています。
import json
json_data = open('file')
data = json.load(json_data)
収量です。
ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 160128774)
を見てみました。
18.2.
json
- JSONエンコーダ・デコーダ
をPythonのドキュメントに追加しましたが、この恐ろしげなドキュメントを読み通すとかなり落胆します。
最初の数行(ランダムな項目で匿名化)。
{"votes": {"funny": 2, "useful": 5, "cool": 1}, "user_id": "harveydennis", "name": "Jasmine Graham", "url": "http://example.org/user_details?userid=harveydennis", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 2, "cool": 4}, "user_id": "njohnson", "name": "Zachary Ballard", "url": "https://www.example.com/user_details?userid=njohnson", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 0, "cool": 4}, "user_id": "david06", "name": "Jonathan George", "url": "https://example.com/user_details?userid=david06", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 6, "useful": 5, "cool": 0}, "user_id": "santiagoerika", "name": "Amanda Taylor", "url": "https://www.example.com/user_details?userid=santiagoerika", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 8, "cool": 2}, "user_id": "rodriguezdennis", "name": "Jennifer Roach", "url": "http://www.example.com/user_details?userid=rodriguezdennis", "average_stars": 3.5, "review_count": 12, "type": "user"}
解決方法は?
あなたは JSON Lines形式のテキストファイル . ファイルを一行ずつパースする必要があります。
import json
data = []
with open('file') as f:
for line in f:
data.append(json.loads(line))
各 ライン は有効なJSONを含んでいますが、トップレベルのリストやオブジェクトの定義がないため、全体としては有効なJSON値とは言えません。
ファイルには行ごとのJSONが含まれているため、すべてを一度にパースしようとしたり、ストリーミングJSONパーサーを把握したりする手間が省けることに注意してください。次の行に移る前に各行を別々に処理することを選択でき、その過程でメモリを節約することができます。おそらく、各結果を1つのリストに追加して その後 が、ファイルが巨大な場合、すべてを処理します。
個々のJSONオブジェクトを含むファイルで、間にデリミタがある場合は json' モジュールを使って、1度に1つのJSONオブジェクトを読み込むにはどうすればいいですか? を使用して、バッファードメソッドで個々のオブジェクトをパースします。
関連
-
[解決済み] argparseによるブーリアン値のパース
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] JSONデータをファイルに書き込むにはどうしたらいいですか?
-
[解決済み] UnixツールでJSONをパースする
-
[解決済み] ローカルファイルの読み込み時に "Cross origin requests are only supported for HTTP." というエラーが発生する。
-
[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。
-
[解決済み] Python RequestsでJSONデータをPOSTする方法とは?
-
[解決済み] YAMLとJSONの違いは何ですか?
-
[解決済み】大文字と数字を含むランダムな文字列の生成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac