[PYTHON] Arbeiten mit JSON-Dateien in Matlab

Einfache Notiz

Es scheint möglich zu sein, das JSON-Format von MATLAB 2016b zu verarbeiten. jsondecode jsonencode

Bereiten Sie die folgenden Dateien vor und überprüfen Sie deren Verwendung.

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 } ]
  }
]

Verfahren

: one: JSON-Datei lesen Verwenden Sie ** jsondecode **

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

json = 

Struktur mit Feld:

            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: Codieren Sie strukturierte MATLAB-Daten als Text im JSON-Format Verwenden Sie ** jsonencode **. Die Ausgabe dieser Funktion ist eine Zeichenfolge, die ein einzeiliges JSON-Objekt darstellt. Es ist zu beachten, dass "jsonencode" nicht null ausgeben kann.

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}]}'

Verwenden Sie Datei-E / A auf niedriger Ebene, um Textdateien zu schreiben.

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

Leider unterstützt die aktuelle Version von matlab die JSON-Formatierung nicht. Formatieren Sie daher die von matlab ausgegebene JSON-Datei mit Pythons json.tool. Es ist etwas schlampig, aber wenn Sie eine Umgebung haben, in der Sie Python in der Befehlszeile ausführen können, können Sie Python auch in der Matlab-Konsole ausführen. 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
        }
    ]
}

Die Position des Zeilenumbruchs ist geringfügig unterschiedlich, kann jedoch mit Ausnahme von ** null ** reproduziert werden. Die Schwierigkeit besteht darin, dass eine Zwischendatei (test2.json) generiert wird.

Andere

Die Daten, die von MATLAB und JSON dargestellt werden können, sind nicht vollständig kompatibel. Beachten Sie beim Ausdrücken von Daten Folgendes, um die Kompatibilität mit MATLAB-Variablen zu gewährleisten. https://jp.mathworks.com/help/mps/restfuljson/json-representation-of-matlab-data-types.html Das Lesen für dieses Format scheint jedoch nicht implementiert zu sein.

Recommended Posts

Arbeiten mit JSON-Dateien in Matlab
Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)
Behandeln Sie Excel-CSV-Dateien mit Python
Lesen und Schreiben von JSON-Dateien mit Python
Behandeln Sie Zip-Dateien mit japanischen Dateinamen in Python 3
Laden Sie Dateien mit Django hoch
[Python] Verwenden Sie JSON mit Python
json parsing mit gdb
Behandle Excel mit Python
Behandle Rabbimq mit Python
Laden Sie verschachtelten Json mit Pandas
Umgang mit statischen Dateien bei der Bereitstellung in der Produktion mit Django
POST json mit Python 3-Skript
Sortieren von Bilddateien mit Python (2)
Sortieren Sie große Dateien mit Python
Sortieren von Bilddateien mit Python (3)
[Tipps] Behandle Athena mit Python
Dateien mit teraterm übertragen [Hinweis]
TXT-Dateien mit Python lesen
Behandle numpy Arrays mit f2py
Formatieren Sie json mit Vim (mit Python)
Lesen von JSON-Daten mit Python
Behandeln Sie Base91-Schlüssel mit Python + Redis.
Laden wir S3-Dateien mit CLI hoch
Extrahieren Sie Zip-Dateien rekursiv mit Python
Bearbeiten von EAGLE .brd-Dateien mit Python
Auflisten von Dateien mit bestimmten Erweiterungen
Einfache Handhabung von Listen mit Python + SQLite3
Laden Sie mehrere JavaScript-Dateien mit PyWebView
Verwalten Sie Django-Konfigurationsdateien mit Python-Decouple
[Python] POST-WAV-Dateien mit Anforderungen [POST]
Servieren Sie statische Dateien mit X-Send File
Mit OpenSSL mit Python 3 verschlüsselte Dateien entschlüsseln
JSON-Codierung und -Decodierung mit Python
Installieren Sie die Datendatei mit setup.py
Speichern und Abrufen von Dateien mit Pepper
Lesen Sie Dateien parallel zu Python
Führen Sie Daten im JSON-Format mit Ansible zusammen
Behandelt verschiedene Datumsformate mit Pandas