次のコンテンツがあります。
{
"z":"[{\"ItemId\":\"1234\",\"a\":\"1234\",\"b\":\"4567\",\"c\":\"d\"}]"
}
これは、特定のAPIから取得したjson応答の一部です。\"
sを'
s に置き換える必要があります。残念ながら、それは私が行き詰まったところです!
私が得る答えのほとんどは、単純に交換している\
と""
か、" "
私を助けていないようにします。だから私の質問は次のとおりです:
私は置き換えることができますどのよう\"
に'
:
ファイルのコンテンツを置き換えるために次のことを試しましたが、明らかに"
s のみを置き換えてい'
ます。
with open(file, "r") as f:
content = f.read()
new_content = content.replace("\"", "'")
with open(file, "w") as new_file:
new_file.write(new_content)
ラッパーの形式をJSONに保ちながら、各値をJSON文字列からPython repr()文字列に変換する場合、次のようになります。
with open(filename, "r") as old_file:
old_content = json.load(old_file)
new_content = {k: repr(json.loads(v)) for k, v in old_content.items()}
with open(filename, "w") as new_file:
json.dump(new_content, new_file)
古いファイルに次のものが含まれている場合:
{"z":"[{\"ItemId\":\"1234\",\"a\":\"1234\",\"b\":\"4567\",\"c\":\"d\"}]"}
...新しいファイルには次のものが含まれます:
{"z": "[{'ItemId': '1234', 'a': '1234', 'b': '4567', 'c': 'd'}]"}
この新しいファイルでは、内部フィールドがJSON形式ではなくPython形式になっていることに注意してください。JSONパーサーで解析できなくなりました。通常、私は代わりに別のことをすることをお勧めします:
with open(filename, "r") as old_file:
old_content = json.load(old_file)
new_content = {k: json.loads(v) for k, v in old_content.items()}
with open(filename, "w") as new_file:
json.dump(new_content, new_file)
...次のような出力ファイルが生成されます。
{"z": [{"ItemId": "1234", "a": "1234", "b": "4567", "c": "d"}]}
...読みやすく、標準のJSON中心のツール(jq
など)で処理するのも簡単です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加