[解決済み] JSONへのダンプは、二重引用符と引用符のエスケープを追加します。
2022-10-05 16:58:32
質問
Python ツールで Twitter のデータを取得し、JSON フォーマットでディスクに出力しています。ツイートのデータ文字列全体が二重引用符で囲まれているという、意図しないエスケープに気づきました。さらに、実際のJSONフォーマットのすべての二重引用符はバックスラッシュでエスケープされています。
このようになります。
"{} {} created_at":\"Fri Aug 08 11:04:40 +0000 2014\",\"id\":497699913925292032,
どうすれば回避できますか?そのはずです。
{"created_at":"Fri Aug 08 11:04:40 +0000 2014" ............................................。
私のファイルアウトコードはこんな感じです。
with io.open('data'+self.timestamp+'.txt', 'a', encoding='utf-8') as f:
f.write(unicode(json.dumps(data, ensure_ascii=False)))
f.write(unicode('\n'))
意図しないエスケープにより、後の処理ステップでJSONファイルを読み込む際に問題が発生します。
どのように解決するのですか?
JSONの文字列を二重エンコードしている。
data
は
すでに
はJSON文字列であり、エンコードする必要はありません。
また
:
>>> import json
>>> not_encoded = {"created_at":"Fri Aug 08 11:04:40 +0000 2014"}
>>> encoded_data = json.dumps(not_encoded)
>>> print encoded_data
{"created_at": "Fri Aug 08 11:04:40 +0000 2014"}
>>> double_encode = json.dumps(encoded_data)
>>> print double_encode
"{\"created_at\": \"Fri Aug 08 11:04:40 +0000 2014\"}"
これらを直接ファイルに書き込むだけです。
with open('data{}.txt'.format(self.timestamp), 'a') as f:
f.write(data + '\n')
関連
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。
-
[解決済み] YAMLとJSONの違いは何ですか?
-
[解決済み] バイナリデータをJSON文字列で。Base64より優れたもの
-
[解決済み] JSONの二重引用符をエスケープする方法
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例
最新
-
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のキャッシュライブラリはありますか?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Python Empty Generator 関数
-
[解決済み] if 節の終了方法
-
[解決済み] 新しいpip backtrackingの実行時問題の解決