Le module json de Python peut lire des fichiers JSON et écrire des objets au format JSON, mais il ne peut pas créer de fichiers JSON. J'ai implémenté la création de fichier JSON au besoin, je vais donc le laisser comme mémo.
À partir du document officiel https://docs.python.org/ja/3/library/json.html
--Insert [Si le fichier JSON que vous souhaitez écrire est vide --Insérer un objet au format JSON --Insérer [à la fin]
Les 3 fichiers suivants sont supposés être dans la même hiérarchie
json_make.py
import json
from pathlib import Path
def json_make(path: Path, obj: dict) -> None:
ls = None
with open(path, 'r+') as f:
ls = f.readlines()
if ls == []:
ls.append('[\n')
if ls[-1] == ']':
ls[-1] = ','
ls.insert(len(ls), f'{json.dumps(obj, indent=4 ,ensure_ascii=False)}')
ls.insert(len(ls), '\n]')
with open(path, 'w') as f:
f.writelines(ls)
main.py
from json_make import json_make
from pathlib import Path
def main():
path = Path(__file__).parent/'tmp.json'
dict_obj = {'key1':'value1', 'key2':'value2', 'key3':['value3', 'value4']}
json_make(path, dict_obj)
if __name__ == '__main__':
main()
Pour json.dumps (indent = 0)
tmp.json
[
{"key1": "value1", "key2": "value2", "key3": ["value3", "value4"]}
,{"key1": "value1", "key2": "value2", "key3": ["value3", "value4"]}
,{"key1": "value1", "key2": "value2", "key3": ["value3", "value4"]}
,{"key1": "value1", "key2": "value2", "key3": ["value3", "value4"]}
]
Pour json.dumps (indent = 4)
tmp.json
[
{
"key1": "value1",
"key2": "value2",
"key3": [
"value3",
"value4"
]
}
,{
"key1": "value1",
"key2": "value2",
"key3": [
"value3",
"value4"
]
}
,{
"key1": "value1",
"key2": "value2",
"key3": [
"value3",
"value4"
]
}
,{
"key1": "value1",
"key2": "value2",
"key3": [
"value3",
"value4"
]
}
]
S'il vous plaît laissez-moi savoir s'il existe une meilleure façon d'écrire
Recommended Posts