[PYTHON] [Einführung in json] Nein, ich war süchtig danach. .. .. ♬

Dieses Mal hatte ich es mit einer JSON-Datei zu tun, die von Lambda in AWS durchlaufen wurde, und ich hatte große Probleme, daher werde ich den JSON-Code ein wenig organisieren.

** json ist wirklich toll ♬ **

Es ist kein Kommentar enthalten. Wenn Sie den Ablauf lesen, während Sie ihn mit den Ergebnissen zusammenstellen, werden Sie die Bedeutung verstehen.

import json

s = r'{"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}'

print("******************")
print(type(s))
print("s=",s)
print(s[5:20])

print("*****'String'.encode('Zeichencode Name')*************")
b = s.encode('cp932')
print(type(b))
print("b=",b)
print(b[5:20])

print("*****b'Byte-String'.decode('Zeichencode Name')*************")
c = b.decode('cp932')
print(type(c))
print("c=",c)
print(c[5:20])

print("*****json.loads(s)*************")
dict = json.loads(s)
print(type(dict))
print("dict=",dict)
print(dict["C"])

print("*****json.dumps(dict)*************")
enc = json.dumps(dict)
print(type(enc))
print("enc=",enc)
print(enc[5:20])

print("*****json.loads(enc)*************")
dict2 = json.loads(enc)
print(type(dict2))
print("dict2=",dict2)
print(dict2["ich"])

print("*****json.dumps(dict2)*************")
enc = json.dumps(dict2)
print(type(enc))
print("enc=",enc)
print(enc[5:20])

print("*****b.decode("utf-8")*************")
db = b.decode("utf-8")
print(type(db))
print("db=",db)
print(db[5:20])

print("*****k.encode('utf-8')*************")
k = r'{"C": "\u3042", "\u3044": "Hallo!"}'
ke =k.encode('utf-8')
print("ke=",ke)
jke =json.loads(ke)
print(jke)
print("jke['C']=",jke['C'])
print("jke['ich']=",jke['ich'])

print("*****json.dumps(dict, default=expireEncoda)*************")
from datetime import datetime
def expireEncoda(object):
    if isinstance(object, datetime):
        return object.isoformat()
dict = {"now": datetime.now()}
enc = json.dumps(dict, default=expireEncoda)
print("dict=",dict)
print("dict['now']=",dict['now'])
print("enc=",enc)

denc =json.loads(enc)
print("denc['now']=",denc['now'])

Ausgabeergebnis

Die Ausgabe des obigen Codes ist wie folgt.

>python ex_jason.py
******************
<class 'str'>
s= {"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
 "\u3042", "\u3
*****'String'.encode('Zeichencode Name')*************
<class 'bytes'>
b= b'{"C": "\\u3042", "\\u3044": {"i": "\\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}'
b' "\\u3042", "\\u3'
*****b'Byte-String'.decode('Zeichencode Name')*************
<class 'str'>
c= {"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
 "\u3042", "\u3
*****json.loads(s)*************
<class 'dict'>
dict= {'C': 'Ah', 'ich': {'i': 'U.', 'j': 2}, 'B': [{'X': 1, 'Y': 10}, {'X': 2, 'Y': 20}]}
Ah
*****json.dumps(dict)*************
<class 'str'>
enc= {"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
 "\u3042", "\u3
*****json.loads(enc)*************
<class 'dict'>
dict2= {'C': 'Ah', 'ich': {'i': 'U.', 'j': 2}, 'B': [{'X': 1, 'Y': 10}, {'X': 2, 'Y': 20}]}
{'i': 'U.', 'j': 2}
*****json.dumps(dict2)*************
<class 'str'>
enc= {"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
 "\u3042", "\u3
*****b.decode("utf-8")*************
<class 'str'>
db= {"C": "\u3042", "\u3044": {"i": "\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
 "\u3042", "\u3
*****k.encode('utf-8')*************
ke= b'{"C": "\\u3042", "\\u3044": "\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf\xef\xbc\x81"}'
{'C': 'Ah', 'ich': 'Hallo!'}
jke['C']=Ah
jke['ich']=Hallo!
*****json.dumps(dict, default=expireEncoda)*************
dict= {'now': datetime.datetime(2020, 6, 22, 21, 13, 57, 761568)}
dict['now']= 2020-06-22 21:13:57.761568
enc= {"now": "2020-06-22T21:13:57.761568"}
denc['now']= 2020-06-22T21:13:57.761568

【Referenz】 ① Beherrschen wir JSON-Dumps mit Python! (Kodierung, Forum, Datum / Uhrzeit)So konvertieren Sie Zeichencode mit Python [Für Anfänger]Lesen / Schreiben von JSON-Dateien / Strings mit Python

Zusammenfassung

・ Die JSON-Datei kann extrahiert werden, indem Sie sie als Wörterbuchtyp 'Überschriftenzeichen' angeben: ・ Identifizieren von JSON-Dateien;

<class 'dict'>
{'name': 'tarou', 'age': 23, 'gender': 'man'}
<class 'str'>
{"name": "tarou", "age": 23, "gender": "man"}

** ・ json.loads (von str nach dict konvertiert) unterscheidet sich von json.load (liest die JSON-Datei als Wörterbuch) ** ** ・ json.dumps (von dict nach str konvertieren; kann in eine Zeichenfolge konvertiert werden) unterscheidet sich von json.dump (Wörterbuch als JSON-Datei speichern) ** · Andere. .. ..

Recommended Posts

[Einführung in json] Nein, ich war süchtig danach. .. .. ♬
Ich war süchtig nach Multiprocessing + Psycopg2
[IOS] GIF-Animation mit Pythonista3. Ich war süchtig danach.
Ich war süchtig danach, mysqlclient zu installieren
Ich war auf dotCloud süchtig nach Flask
Was ich süchtig nach Python Autorun war
Verwenden Sie Python aus Java mit Jython. Ich war auch süchtig danach.
Docker x Visualization hat nicht funktioniert und ich war süchtig danach, also habe ich es zusammengefasst!
Beachten Sie, dass ich süchtig danach war, TensowFlow einzurichten
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
AttributeError: Ich war süchtig nach 'Modul'-Objekt hat kein Attribut' MyTestCase '
Eine Geschichte, von der ich bei np.where süchtig war
Python: Kann in Lambda wiederholt werden
Ich war süchtig danach, logging.getLogger mit Flask 1.1.x zu versuchen
Wovon ich süchtig war, als ich Python Tornado benutzte
Einführung in die nichtlineare Optimierung (I)
Wovon ich süchtig war, als der Processing-Benutzer zu Python wechselte
PyTorchs Buch war schwer zu verstehen, deshalb habe ich es ergänzt
[Fix] Ich war süchtig nach dem alphanumerischen Urteil über Python-Strings
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
[Einführung in Python] So analysieren Sie JSON
Eine Geschichte, die ich süchtig danach war, Lambda von AWS Lambda anzurufen.
Die Platte, von der ich süchtig war, als ich MeCab in Heroku einsetzte
Wovon ich süchtig war, als ich ALE in Vim für Python einführte
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Beachten Sie, dass ich süchtig nach der fehlenden Wertinterpolation von sklearn war (Imputer)
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
Zwei Dinge, die ich süchtig danach war, Django + Apache + Nginx unter Windows zu erstellen
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Eine Geschichte, die ich süchtig danach war, eine Video-URL mit Tweepy zu bekommen
[Einführung in Pytorch] Ich habe mit sinGAN ♬ gespielt
Ich war süchtig danach, Markdown nicht für die lange Beschreibung von Pypi verwenden zu können
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich war süchtig danach, Cython mit PyCharm auszuprobieren, also machen Sie sich eine Notiz
Ich dachte, es sei dasselbe wie Python, und ich war süchtig nach dem Problem, dass der Ruby-Interpreter nicht gestartet wurde.
Die mit vim bearbeitete Datei war schreibgeschützt, aber ich möchte sie speichern
Wovon ich beim Erstellen von Webanwendungen in einer Windows-Umgebung abhängig war
P100-PCIE-16GB wurde der GPU von Google Colab hinzugefügt, bevor ich es wusste
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete
AtCoder AGC 041 C - Ich war süchtig nach der vollständigen Suche nach Domino-Qualität
Ich konnte AWS-Batch mit Python, Moto verspotten, also werde ich es verlassen
Ein Hinweis, dem ich beim Ausführen von Python mit Visual Studio Code verfallen war
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Python: Ich konnte in Lambda rekursieren
Wie auch immer, ich möchte JSON-Daten einfach überprüfen
Geschrieben "Einführung in die Effektüberprüfung" in Python
[Einführung in Python] Umgang mit Daten im JSON-Format
[Einführung in PID] Ich habe versucht, ♬ zu steuern und zu spielen
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Ich war nüchtern süchtig danach, awscli von einem in crontab registrierten Python 2.7-Skript aus aufzurufen
Erste Schritte mit Supervisor