[解決済み] JSONからJSONLへのPython変換
2022-02-19 18:35:28
質問
標準的なJSONオブジェクトを、各行が独立した自己完結型の有効なJSONオブジェクトを含む必要があるオブジェクトに操作したいのですが、どうすればよいですか?以下を参照してください。 JSONの行数
JSON_file =
[{u'index': 1,
u'no': 'A',
u'met': u'1043205'},
{u'index': 2,
u'no': 'B',
u'met': u'000031043206'},
{u'index': 3,
u'no': 'C',
u'met': u'0031043207'}]
To JSONL
:
{u'index': 1, u'no': 'A', u'met': u'1043205'}
{u'index': 2, u'no': 'B', u'met': u'031043206'}
{u'index': 3, u'no': 'C', u'met': u'0031043207'}
私の現在の解決策は、JSONファイルをテキストファイルとして読み込んで、その中の
[
という文字列と
]
を末尾から削除します。このように、行を含むネストされたオブジェクトではなく、各行で有効なJSONオブジェクトを作成します。
もっとエレガントな解決策はないのだろうか?ファイル上で文字列操作をすると、何か問題が起こるのではないかと思うのですが。
動機は
json
ファイルをSpark上のRDDに取り込むことができます。関連する質問を参照してください - 。
Apache SparkでJSONを読む - `corrupt_record`.
解決するには?
入力は、次のような連続したものであるように見えます。 Pythonオブジェクト それは確かにJSONドキュメントとして有効ではありません。
Python辞書のリストがあれば、各エントリを別々にファイルにダンプし、その後に改行すればよいだけです。
import json
with open('output.jsonl', 'w') as outfile:
for entry in JSON_file:
json.dump(entry, outfile)
outfile.write('\n')
のデフォルトの構成は
json
モジュールは、改行を埋め込まないJSONを出力します。
仮に
A
,
B
と
C
の名前が本当に文字列である場合、そのような結果が得られます。
{"index": 1, "met": "1043205", "no": "A"}
{"index": 2, "met": "000031043206", "no": "B"}
{"index": 3, "met": "0031043207", "no": "C"}
エントリーのリストを含む JSON ドキュメントから始めた場合、そのドキュメントを最初にパースするために
json.load()
/
json.loads()
.
関連
-
Python カメの描画コマンドとその例
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 implement mysql add delete check change サンプルコード
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python入門 openを使ったファイルの読み書きの方法
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。