[PYTHON] Travailler avec des fichiers JSON dans Matlab

Note simple

Il semble qu'il soit possible de gérer le format JSON à partir de MATLAB 2016b. jsondecode jsonencode

Préparez les fichiers suivants et vérifiez comment les utiliser.

test.json


[
  {
    "Null": null,
    "Boolean": true,
    "Numeric": 1,
    "String": "string",
    "Object": { "a": null, "b": true, "c": 1, "d": "string" },
    "Array": [ null, true, 1, "string" ],
    "BooleanArray": [ true, false],
    "NumericArray": [ 1, 2, 3 ],
    "StringArray": [ "foo", "buz" ],
    "ObjectArrayS": [ { "a": 1, "b": "one" }, { "a": 2, "b": "two" } ],
    "ObjectArrayC": [ { "a": 1, "b": "one" }, { "x": 9, "y": true } ]
  }
]

procédure

: one: Lire le fichier JSON Utilisez ** jsondecode **

>> json = jsondecode(fileread('test.json'))

json = 

Struct avec champ:

            Null: []
         Boolean: 1
         Numeric: 1
          String: 'string'
          Object: [1×1 struct]
           Array: {4×1 cell}
    BooleanArray: [2×1 logical]
    NumericArray: [3×1 double]
     StringArray: {2×1 cell}
    ObjectArrayS: [2×1 struct]
    ObjectArrayC: {2×1 cell}

: two: Encode des données MATLAB structurées sous forme de texte au format JSON Utilisez ** jsonencode **. La sortie de cette fonction est une chaîne représentant un objet JSON sur une ligne. Il convient de noter que jsonencode ne peut pas afficher null.

JSON MATLAB MATLAB JSON
null :arrow_right: [] [] :arrow_right: []
>> jsonencode(json)

ans =

    '{"Null":[],"Boolean":true,"Numeric":1,"String":"string","Object":{"a":[],"b":true,"c":1,"d":"string"},"Array":[[],true,1,"string"],"BooleanArray":[true,false],"NumericArray":[1,2,3],"StringArray":["foo","buz"],"ObjectArrayS":[{"a":1,"b":"one"},{"a":2,"b":"two"}],"ObjectArrayC":[{"a":1,"b":"one"},{"x":9,"y":true}]}'

Utilisez les E / S de fichier de bas niveau pour écrire des fichiers texte.

>> fileID = fopen('test2.json', 'w');
>> fprintf(fileID, jsonencode(json));
>> fclose(fileID);

Malheureusement, la version actuelle de matlab ne prend pas en charge le formatage JSON. Par conséquent, utilisez json.tool de python pour formater la sortie du fichier JSON par matlab. C'est un peu bâclé, mais si vous avez un environnement dans lequel vous pouvez exécuter python sur la ligne de commande, vous pouvez également exécuter python sur la console matlab. https://jp.mathworks.com/help/matlab/matlab_external/run-external-commands-scripts-and-programs.html

>> !python -m json.tool test2.json test3.json

test3.json


{
    "Null": [],
    "Boolean": true,
    "Numeric": 1,
    "String": "string",
    "Object": {
        "a": [],
        "b": true,
        "c": 1,
        "d": "string"
    },
    "Array": [
        [],
        true,
        1,
        "string"
    ],
    "BooleanArray": [
        true,
        false
    ],
    "NumericArray": [
        1,
        2,
        3
    ],
    "StringArray": [
        "foo",
        "buz"
    ],
    "ObjectArrayS": [
        {
            "a": 1,
            "b": "one"
        },
        {
            "a": 2,
            "b": "two"
        }
    ],
    "ObjectArrayC": [
        {
            "a": 1,
            "b": "one"
        },
        {
            "x": 9,
            "y": true
        }
    ]
}

La position du saut de ligne est légèrement différente, mais elle peut être reproduite sauf pour ** null **. La difficulté est qu'un fichier intermédiaire (test2.json) est généré.

Autre

Les données qui peuvent être représentées par MATLAB et JSON ne sont pas totalement compatibles. Reportez-vous à ce qui suit lors de l'expression de données afin de maintenir la compatibilité avec les variables MATLAB. https://jp.mathworks.com/help/mps/restfuljson/json-representation-of-matlab-data-types.html Cependant, la lecture pour ce format ne semble pas être mise en œuvre.

Recommended Posts

Travailler avec des fichiers JSON dans Matlab
Gérer les fichiers csv avec Django (django-import-export)
Gérer les fichiers Excel CSV avec Python
Lire et écrire des fichiers JSON avec Python
Gérer les fichiers zip avec des noms de fichiers japonais dans Python 3
Télécharger des fichiers avec Django
[Python] Utiliser JSON avec Python
analyse json avec gdb
Gérez Excel avec python
Manipuler rabbimq avec python
Charger json imbriqué avec des pandas
Gestion des fichiers statiques lors du déploiement en production avec Django
POST json avec le script Python 3
Tri des fichiers image avec Python (2)
Trier de gros fichiers avec python
Tri des fichiers image avec Python (3)
[Astuces] Gérez Athena avec Python
Transférer des fichiers avec Teraterm [Note]
Lire des fichiers .txt avec Python
Gérez les tableaux numpy avec f2py
Formater json avec Vim (avec python)
Lire des données json avec python
Gérez les clés Base91 avec python + redis.
Téléchargeons des fichiers S3 avec CLI
Extraire récursivement des fichiers zip avec python
Manipulation des fichiers EAGLE .brd avec Python
Énumérer les fichiers avec des extensions spécifiques
Gérez facilement les listes avec python + sqlite3
Charger plusieurs fichiers JavaScript avec PyWebView
Gérer les fichiers de configuration Django avec Python-decouple
[Python] Fichiers wav POST avec requêtes [POST]
Servir des fichiers statiques avec X-Send File
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Encodage et décodage JSON avec python
Installez le fichier de données avec setup.py
Enregistrer et récupérer des fichiers avec Pepper
Lire des fichiers en parallèle avec Python
Fusionner les données au format JSON avec Ansible
Gère divers formats de date avec des pandas