So erstellen Sie eine JSON-Datei in Python

Einführung

Das json-Modul von Python kann JSON-Dateien lesen und JSON-formatierte Objekte schreiben, jedoch keine JSON-Dateien erstellen. Ich habe die JSON-Dateierstellung nach Bedarf implementiert, daher werde ich sie als Memo belassen.

Aus dem offiziellen Dokument https://docs.python.org/ja/3/library/json.html image.png

Implementierungsrichtlinie

--Insert [Wenn die JSON-Datei, die Sie schreiben möchten, leer ist

Implementierungsbeispiel

Es wird angenommen, dass sich die folgenden 3 Dateien in derselben Hierarchie befinden

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()

Für json.dumps (Einzug = 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"]}
]

Für json.dumps (Einzug = 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"
    ]
}
]

Referenz

Offizielles Dokument

Am Ende

Bitte lassen Sie mich wissen, ob es einen besseren Weg zum Schreiben gibt

Recommended Posts

So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine Binärdatei in Python
So erstellen Sie eine Konfigurationsdatei
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
So importieren Sie Dateien in Python an eine beliebige Stelle
Wie bekomme ich Stacktrace in Python?
[GPS] Erstellen Sie eine kml-Datei mit Python
Lesen einer CSV-Datei mit Python 2/3
Erstellen Sie eine GIF-Datei mit Pillow in Python
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
So generieren Sie ein Python-Objekt aus JSON
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So erstellen Sie eine Rest-API in Django
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
So lesen Sie Dateien in verschiedenen Verzeichnissen
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Wie man in Python entwickelt
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Ich möchte eine Datei mit Python zufällig testen
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
So erstellen Sie einen Bild-Uploader mit Bottle (Python)
[Arbeitseffizienz] So ändern Sie Dateinamen im Stapel mit Python
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Umgang mit JSON in Ruby, Python, JavaScript, PHP
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Erstellen Sie einen DI-Container mit Python
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
So legen Sie Google Text & Tabellen in einem Ordner zusammen in einer TXT-Datei mit Python ab
So erstellen Sie ein Conda-Paket
So erstellen Sie eine virtuelle Brücke
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Wie erstelle ich eine Docker-Datei?
Verwendung von PubChem mit Python
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Erstellen Sie eine zufällige Zeichenfolge in Python
Umgang mit Japanisch mit Python
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
Verwendung der Methode __call__ in der Python-Klasse
So definieren Sie mehrere Variablen in einer Python for-Anweisung
[Python Kivy] So erstellen Sie ein einfaches Popup-Fenster
Ich habe versucht "Wie man eine Methode in Python dekoriert"
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python