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.
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'])
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
・ 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