Comment créer un fichier JSON en Python

introduction

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 image.png

Politique de mise en œuvre

--Insert [Si le fichier JSON que vous souhaitez écrire est vide --Insérer un objet au format JSON --Insérer [à la fin]

Exemple d'implémentation

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"
    ]
}
]

référence

Document officiel

À la fin

S'il vous plaît laissez-moi savoir s'il existe une meilleure façon d'écrire

Recommended Posts

Comment créer un fichier JSON en Python
Créer un fichier binaire en Python
Comment créer un fichier de configuration
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Comment importer des fichiers où vous le souhaitez en Python
Comment obtenir stacktrace en python
[GPS] Créer un fichier kml avec Python
Comment lire un fichier CSV avec Python 2/3
Créer un fichier GIF en utilisant Pillow en Python
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Comment générer un objet Python à partir de JSON
Comment notifier les canaux Discord en Python
[Python] Comment dessiner un histogramme avec Matplotlib
Comment créer une API Rest dans Django
Créez un fichier MIDI en Python en utilisant pretty_midi
Comment lire des fichiers dans différents répertoires
Créer une fonction en Python
Créer un dictionnaire en Python
Comment développer en Python
Comment convertir / restaurer une chaîne avec [] en python
[Python] Comment développer des variables dans une chaîne de caractères
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Comment créer un téléchargeur d'image avec Bottle (Python)
[Efficacité du travail] Comment changer les noms de fichiers par lots avec Python
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Comment exécuter une commande à l'aide d'un sous-processus en Python
Comment gérer JSON en Ruby, Python, JavaScript, PHP
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
Créer un conteneur DI avec Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Comment déposer Google Docs dans un dossier dans un fichier .txt avec python
Comment créer un package Conda
Comment créer un pont virtuel
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment créer un Dockerfile (basique)
Comment utiliser PubChem avec Python
5 façons de créer un chatbot Python
Créer une chaîne aléatoire en Python
Comment gérer le japonais avec Python
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment exécuter un fichier Python à une invite de commande Windows 10
Comment utiliser la méthode __call__ dans la classe Python
Comment définir plusieurs variables dans une instruction Python for
[Python Kivy] Comment créer une simple fenêtre pop-up
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment développer dans un environnement virtuel Python [Memo]
Comment obtenir la dernière (dernière) valeur d'une liste en Python