Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus

Neulich habe ich zusammengefasst, wie man eine json-Datei mit PowerShell liest, die erforderliche Formatierung durchführt und json ausgibt. Da ich es jedoch mit Python versucht habe, möchte ich es als Memorandum behalten.

Code von der letzten PowerShell

Zuerst muss die JSON-Datei gelesen werden.

data.json


{
    "prefectures": [
        {
            "code": "Tokyo",
            "name": "Tokio"
        },
        {
            "code": "Osaka",
            "name": "Osaka"
        },
        {
            "code": "Aichi",
            "name": "Aichi"
        },
        {
            "code": "Fukuoka",
            "name": "Fukuoka"
        }
    ],
    "tables": [
        {
            "code": "meeting_room",
            "name": "Konferenzraum",
            "field1": "id",
            "field2": "floar",
            "field3": "capacities"
        },
        {
            "code": "parking",
            "name": "Parkplatz",
            "field1": "id",
            "field2": "area",
            "field3": "space_number",
            "field4": "user_name",
            "field5": "car_number",
            "field6": "expire"
        }
    ]
}

Was ich ausgeben möchte, ist eine JSON-Datei für jedes Element von Präfekturen x Tabellen. Darüber hinaus fügt der JSON die Vorwahl und den Bereichsnamen zu jedem Code und Namen der Tabelle hinzu.

Code abgeschlossen

Hier ist der Code, den ich ausprobiert habe. Ich denke, dass der Inhalt der for-Sätze in der 17. und 22. Zeile übersichtlicher organisiert werden kann, also muss ich mich widmen.

main.py


import os
import sys
import pathlib
import json
import itertools


def json_make():
    """
Json für Region x-Tabellentyp aus Json-Daten ausgeben
    """
    jsonfile = open('data.json', 'r')
    data = json.load(jsonfile)

    prefectures = data['prefectures']
    tables = data['tables']

    for pref, table in itertools.product(prefectures, tables):
        pref_code = pref["code"]
        pref_name = pref["name"]
        result = {}

        for k in table:
            if k == 'code':
                result['code'] = f'{pref_code}_{table[k]}'
            elif k == 'name':
                result['name'] = f'{pref_name}_{table[k]}'
            else:
                result[k] = table[k]

        expfile = open("./results/" + result['code'] + '.json', 'w')
        # ensure_ascii=Vermeiden Sie japanische Codierung, indem Sie False hinzufügen
        json.dump(result, expfile, indent=4, ensure_ascii=False)


#Nicht verarbeiten, wenn keine Datei vorhanden ist
if os.path.exists('data.json') is False:
    sys.exit()

#Erstellen, wenn kein Ausgabeordner vorhanden ist
exp = pathlib.Path('./results')
if exp.exists() is False:
    exp.mkdir()

json_make()

Ausgabeergebnis

naoki$ ls -l results
-rw-r--r--  1 naoki  staff  139  4 19 13:16 Aichi_meeting_room.json
-rw-r--r--  1 naoki  staff  214  4 19 13:16 Aichi_parking.json
-rw-r--r--  1 naoki  staff  141  4 19 13:16 Fukuoka_meeting_room.json
-rw-r--r--  1 naoki  staff  216  4 19 13:16 Fukuoka_parking.json
-rw-r--r--  1 naoki  staff  139  4 19 13:16 Osaka_meeting_room.json
-rw-r--r--  1 naoki  staff  214  4 19 13:16 Osaka_parking.json
-rw-r--r--@ 1 naoki  staff  139  4 19 13:16 Tokyo_meeting_room.json
-rw-r--r--  1 naoki  staff  214  4 19 13:16 Tokyo_parking.json

Aichi_meeting_room.json


{
    "code": "Aichi_meeting_room",
    "name": "Aichi_Konferenzraum",
    "field1": "id",
    "field2": "floar",
    "field3": "capacities"
}

Aichi_parking.json


{
    "code": "Aichi_parking",
    "name": "Aichi_Parkplatz",
    "field1": "id",
    "field2": "area",
    "field3": "space_number",
    "field4": "user_name",
    "field5": "car_number",
    "field6": "expire"
}

Recommended Posts

Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
[Python3] Lesen und Schreiben mit datetime isoformat mit json
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Formatieren Sie json mit Vim (mit Python)
Lesen von JSON-Daten mit Python
Lesen und analysieren Sie den Datensatz im Arff-Format mit python scipy.io
Ausgabeprotokoll im JSON-Format mit Python-Standardprotokollierung
Teilen Sie jede PowerPoint-Folie in eine JPG-Datei und geben Sie sie mit Python aus
Ausgabe in eine CSV-Datei mit Python
JSON-Codierung und -Decodierung mit Python
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Lesen wir die RINEX-Datei mit Python ①
Lesen und Schreiben von JSON-Dateien mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
[Python] Lesen Sie die HTML-Datei und üben Sie das Scraping
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Lesen Sie die Datei mit Python und löschen Sie die Zeilenumbrüche [Hinweise zum Lesen der Datei]
Lesen einer CSV-Datei mit Python 2/3
[Python] Wie man Excel-Dateien mit Pandas liest
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
POST JSON mit Python und empfange mit PHP
Lesen Sie mit Python Zeile für Zeile aus der Datei
[Python] Verwenden Sie JSON mit Python
Python-Eingabe und Ausgabe
Lesen Sie die Python-CSV-Datei
[Python] Kombinieren von Listen mit Zahlen zu Zeichenfolgen und Schreiben in eine Ausgabedatei
Prozedur zum Laden von MNIST mit Python und zur Ausgabe an png
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
Lesen und Schreiben von Dateien mit Slackbot ~ Bot-Entwicklung mit Python ~
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
POST das Bild mit json und erhalte es mit der Flasche
Lesen Sie die CSV-Datei mit dem Jupiter-Notizbuch und schreiben Sie die Grafik übereinander
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Programmieren mit Python und Tkinter
CSV-Datei lesen und schreiben
Ver- und Entschlüsselung mit Python
Lesen Sie CSV mit Python-Pandas
Einfaches Formatieren von JSON mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Python-Einzug und String-Format
POST json mit Python 3-Skript
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Zeichnen Sie eine netCDF-Datei mit Python
Dateien lesen und schreiben
Dateien schreiben und lesen
Python mit Pyenv und Venv
String-Format mit Python% -Operator
Laden Sie die CSV-Datei mit Python herunter
Lesen Sie die Fortran-Ausgabe mit Python
Funktioniert mit Python und R.
Schreiben Sie einfach JSON- und Python-Datenklassenkonvertierungen mit Quicktype und Dacite
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Python-Anwendung: Datenverarbeitung Teil 1: Datenformatierung und Dateieingabe / -ausgabe
Einfach mit nur Python! Geben Sie Graphviz-Zahlen im draw.io-Format aus!