JSONは扱いやすい形式ですが、文字列はUTF-8でエンコードされるため読めません。
読めるJSONを生成する方法を考えてみました。
import json
def main():
recs = {
"date": "2020-1-15",
"data": [{"id": 1, "name": "アフリカゾウ"}, {"id": 2, "name": "イノシシ"}],
}
json_pure = json.dumps(recs)
print("正しいJSON")
print(json_pure)
json_readable = json_dumps_readable(recs)
print("読めるJSON")
print(json_readable)
recs_new = json.loads(json_readable)
def json_dumps_readable(recs):
json_pure = json.dumps(recs)
json_readable = json_pure.encode().decode("unicode_escape")
json_readable = (
json_readable.replace(" ", "")
.replace(",", ",\n")
.replace("{", "{\n")
.replace("},\n{", "},{")
)
return json_readable
if __name__ == "__main__":
main()
def main():
recs = {
"date": "2020-1-15",
"data": [{"id": 1, "name": "アフリカゾウ"}, {"id": 2, "name": "イノシシ"}],
}
json_pure = json.dumps(recs)
print("正しいJSON")
print(json_pure)
json_readable = json_dumps_readable(recs)
print("読めるJSON")
print(json_readable)
recs_new = json.loads(json_readable)
def json_dumps_readable(recs):
json_pure = json.dumps(recs)
json_readable = json_pure.encode().decode("unicode_escape")
json_readable = (
json_readable.replace(" ", "")
.replace(",", ",\n")
.replace("{", "{\n")
.replace("},\n{", "},{")
)
return json_readable
if __name__ == "__main__":
main()
実行結果
正しいJSON
{“date”: “2020-1-15”, “data”: [{“id”: 1, “name”: “\u30a2\u30d5\u30ea\u30ab\u30be\u30a6”}, {“id”: 2, “name”: “\u30a4\u30ce\u30b7\u30b7”}]}
読めるJSON
{
“date”:”2020-1-15″,
“data”:[{
“id”:1,
“name”:”アフリカゾウ”},{
“id”:2,
“name”:”イノシシ”}]}
コメント