[PYTHON] Convertir (compresser) une chaîne de caractères JSON formatée en JSON 1 ligne

Notez que j'ai vérifié la méthode lors de la conversion (compression) d'une chaîne de caractères JSON en JSON 1 ligne.

Méthode

Les deux méthodes suivantes seront introduites.

En supposant que la chaîne de caractères JSON suivante décrite dans le fichier.

file.py


{
    "Records": [
        {
            "database": {
                "NewImage": {
                    "eventId": {
                        "S": "a4207f7a-5f04-471b-a338-1175182eaa6d"
                    },
                    "isCompleted": {
                        "BOOL": True
                    }
                },
                "OldImage": {
                    "eventId": {
                        "S": "a4207f7a-5f04-471b-a338-1175182eaa6d"
                    },
                    "isCompleted": {
                        "BOOL": False
                    }
                }
            }
        }
    ]
}

Méthode 1: utiliser Python

$ python
>>> import json
>>> f = open("file.json")
>>> json.dumps(f.read()).replace("\\n","").replace("\\","").replace("    ", "")
'"{"Records": [{"database": {"NewImage": {"eventId": {"S": "a4207f7a-5f04-471b-a338-1175182eaa6d"},"isCompleted": {"BOOL": True}},"OldImage": {"eventId": {"S": "a4207f7a-5f04-471b-a338-1175182eaa6d"},"isCompleted": {"BOOL": False}}}}]}"'

Dans .replace (" "," "), le retrait (espace`` 4) est remplacé et supprimé. Si une chaîne de caractères différente est indentée dans la chaîne de caractères JSON, la source de remplacement de cette partie peut être modifiée.

Méthode 2: utilisez la commande jq

Fondamentalement, cat <nom de fichier> | jq -c peut être utilisé.

Cependant, jq ne peut pas gérer «True» ou «False» comme un booléen, donc si vous essayez de l'exécuter tel quel pour file.json cette fois, l'erreur suivante se produira.

$ cat file.json | jq -c
parse error: Invalid numeric literal at line 11, column 0

Par conséquent, il est nécessaire de changer à l'avance «True» en «true» et «False» en «false». Si file.json est modifié à l'avance, il peut être exécuté comme suit.

$ cat file.json | jq -c
{"Records":[{"database":{"NewImage":{"eventId":{"S":"a4207f7a-5f04-471b-a338-1175182eaa6d"},"isCompleted":{"BOOL":true}},"OldImage":{"eventId":{"S":"a4207f7a-5f04-471b-a338-1175182eaa6d"},"isCompleted":{"BOOL":false}}}}]}

c'est tout

Recommended Posts

Convertir (compresser) une chaîne de caractères JSON formatée en JSON 1 ligne
Convertir json en Excel
Convertir une chaîne hexadécimale en binaire
[python] Convertir la date en chaîne
Convertir l'objet Statut Tweepy en JSON
Convertir une chaîne en image
Convertir des données Excel en JSON avec python
Convertir un tableau (struct) en json avec golang
Convertir en HSV
Convertir XLSX en CSV sur la ligne de commande
Convertir les données au format json en txt (en utilisant yolo)
Analyser une chaîne JSON écrite dans un fichier en Python
Je convertis les données AWS JSON en CSV comme ceci
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Convertir / renvoyer des objets de classe au format JSON en Python
Comment convertir des fichiers Json au format CSV ou au format EXCEL
Convertir le fichier XML au format Pascal VOC en fichier json au format COCO
Convertir 202003 en 2020-03 avec les pandas
Convertir les kanji en kana
Convertir jupyter en py
Convertir keras-yolo3 en ONNX
Comment lire JSON
Convertir dict en tableau
Convertir la requête Select obtenue de Postgre avec Go en JSON
Je souhaite convertir une chaîne de caractères ISO-8601 en heure japonaise
Lire json avec C # et convertir en type dictionnaire (forcé)