Lire le fichier json avec Python, le formater et générer le json

L'autre jour, j'ai résumé comment lire un fichier json avec PowerShell, effectuer le formatage nécessaire et générer json, mais depuis que je l'ai essayé avec Python, j'aimerais le garder en mémoire.

Code du dernier PowerShell

Le premier est le fichier json à lire.

data.json


{
    "prefectures": [
        {
            "code": "Tokyo",
            "name": "Tokyo"
        },
        {
            "code": "Osaka",
            "name": "Osaka"
        },
        {
            "code": "Aichi",
            "name": "Aichi"
        },
        {
            "code": "Fukuoka",
            "name": "Fukuoka"
        }
    ],
    "tables": [
        {
            "code": "meeting_room",
            "name": "salle de conférence",
            "field1": "id",
            "field2": "floar",
            "field3": "capacities"
        },
        {
            "code": "parking",
            "name": "Terrain de stationnement",
            "field1": "id",
            "field2": "area",
            "field3": "space_number",
            "field4": "user_name",
            "field5": "car_number",
            "field6": "expire"
        }
    ]
}

Ce que je veux sortir est un fichier json pour chaque élément des préfectures x tables. De plus, le json ajoute l'indicatif régional et le nom de la zone à chacun des codes et noms de la table.

Code complété

Voici le code que j'ai essayé. Je pense que le contenu des phrases for sur les 17e et 22e lignes peut être organisé plus proprement, donc j'ai besoin de me consacrer.

main.py


import os
import sys
import pathlib
import json
import itertools


def json_make():
    """
Sortie json pour le type de table region x à partir de données Json
    """
    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=Évitez le codage japonais en ajoutant False
        json.dump(result, expfile, indent=4, ensure_ascii=False)


#Ne pas traiter s'il n'y a pas de fichier
if os.path.exists('data.json') is False:
    sys.exit()

#Créer s'il n'y a pas de dossier de sortie
exp = pathlib.Path('./results')
if exp.exists() is False:
    exp.mkdir()

json_make()

Résultat de sortie

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_salle de conférence",
    "field1": "id",
    "field2": "floar",
    "field3": "capacities"
}

Aichi_parking.json


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

Recommended Posts

Lire le fichier json avec Python, le formater et générer le json
[Python3] Lecture et écriture avec isoformat datetime avec json
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Formater json avec Vim (avec python)
Lire des données json avec python
Lisez et analysez l'ensemble de données au format arff avec python scipy.io
Journal de sortie au format JSON avec journalisation standard Python
Divisez chaque diapositive PowerPoint en un fichier JPG et exportez-le avec python
Sortie vers un fichier csv avec Python
Encodage et décodage JSON avec python
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Lisons le fichier RINEX avec Python ①
Lire et écrire des fichiers JSON avec Python
Lire et écrire des fichiers JSON avec Python
[python] Lisez le fichier html et entraînez-vous au scraping
[Automation] Lire le courrier (fichier msg) avec Python
Lisez le fichier avec python et supprimez les sauts de ligne [Notes sur la lecture du fichier]
Comment lire un fichier CSV avec Python 2/3
[Python] Comment lire des fichiers Excel avec des pandas
Lire les données de la table dans un fichier PDF avec Python
Créer un fichier au format Photoshop (.psd) avec python
POST JSON avec Python et recevez avec PHP
Lire ligne par ligne à partir d'un fichier avec Python
[Python] Utiliser JSON avec Python
entrée et sortie python
Lire le fichier csv Python
[Python] Combiner des listes contenant des nombres en chaînes et les écrire dans un fichier de sortie
Procédure pour charger MNIST avec python et sortie en png
Installez le sélénium sur votre Mac et essayez-le avec python
Lisez le fichier csv et affichez-le dans le navigateur
Analyser et visualiser JSON (application Web ⑤ avec Python + Flask)
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Lire et écrire des fichiers avec Slackbot ~ Développement de bot avec Python ~
Recevoir des e-mails de Gmail et étiqueter avec Python3
POSTER l'image avec json et la recevoir avec flask
Lisez le fichier csv avec le notebook jupyter et écrivez le graphique l'un sur l'autre
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Programmation avec Python et Tkinter
Lire et écrire un fichier csv
Chiffrement et déchiffrement avec Python
Lire csv avec des pandas python
Formatez facilement JSON avec Python
Python et matériel - Utilisation de RS232C avec Python -
Indentation Python et format de chaîne
POST json avec le script Python 3
Essayez la sortie Python avec Haxe 3.2
Dessiner un fichier netCDF avec python
Lire et écrire des fichiers
Écrire et lire des fichiers
python avec pyenv et venv
Format de chaîne avec l'opérateur Python%
Télécharger le fichier csv avec python
Lire la sortie Fortran avec python
Fonctionne avec Python et R
Écrivez facilement des conversions de classes de données JSON et Python avec quicktype et dacite
Associez Python Enum à une fonction pour la rendre appelable
Obtenez le type MIME en Python et déterminez le format de fichier
Application Python: Traitement des données Partie 1: Formatage des données et entrée / sortie de fichier
Facile avec juste Python! Affichez les figures Graphviz au format draw.io!