[PYTHON] [Introduction à json] Non, j'en étais accro. .. .. ♬

Cette fois, j'avais affaire à un fichier json qui a été parcouru par Lambda sur AWS, et j'ai eu beaucoup de problèmes, je vais donc organiser un peu le code json.

** json est vraiment super ♬ **

Aucun commentaire n'est inclus. Si vous lisez le flux tout en le rassemblant avec les résultats, vous en comprendrez la signification.

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("*****'Chaîne'.encode('Nom de code de caractère')*************")
b = s.encode('cp932')
print(type(b))
print("b=",b)
print(b[5:20])

print("*****b'Chaîne d'octets'.decode('Nom de code de caractère')*************")
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["je"])

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": "salut!"}'
ke =k.encode('utf-8')
print("ke=",ke)
jke =json.loads(ke)
print(jke)
print("jke['C']=",jke['C'])
print("jke['je']=",jke['je'])

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

Résultat de sortie

La sortie du code ci-dessus est la suivante.

>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
*****'Chaîne'.encode('Nom de code de caractère')*************
<class 'bytes'>
b= b'{"C": "\\u3042", "\\u3044": {"i": "\\u3046", "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}'
b' "\\u3042", "\\u3'
*****b'Chaîne d'octets'.decode('Nom de code de caractère')*************
<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', 'je': {'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', 'je': {'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', 'je': 'salut!'}
jke['C']=Ah
jke['je']=salut!
*****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

【référence】 ① Maîtrisons les vidages json avec Python! (encodage, foramt, datetime)Comment convertir du code de caractère avec Python [Pour les débutants]Lecture / écriture de fichiers / chaînes JSON avec Python

Résumé

・ Le fichier json peut être extrait en le spécifiant comme type de dictionnaire, 'caractère d'en-tête': ・ Comment identifier les fichiers json;

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

** ・ json.loads (converti de str en dict) est différent de json.load (lit le fichier JSON en tant que dictionnaire) ** ** ・ json.dumps (convertir de dict en str; peut être converti en chaîne de caractères) est différent de json.dump (enregistrer le dictionnaire sous forme de fichier JSON) ** · Autres. .. ..

Recommended Posts

[Introduction à json] Non, j'en étais accro. .. .. ♬
J'étais accro au multitraitement + psycopg2
[IOS] Animation GIF avec Pythonista3. J'en étais accro.
J'étais accro à pip installer mysqlclient
J'étais accro à Flask sur dotCloud
Ce que j'étais accro à Python autorun
Utilisez Python de Java avec Jython. J'étais aussi accro.
Docker x Visualization ne fonctionnait pas et j'en étais accro, alors je l'ai résumé!
Notez que j'étais accro à la configuration de TensowFlow
J'étais accro au grattage avec Selenium (+ Python) en 2020
AttributeError: J'étais accro à l'objet'module 'qui n'a pas d'attribut'MyTestCase'
Une histoire à laquelle j'étais accro chez np.where
Python: peut être répété en lambda
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Introduction à l'optimisation non linéaire (I)
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
Le livre de PyTorch était difficile à comprendre, alors je l'ai complété
[Réparer] J'étais accro au jugement alphanumérique des chaînes Python
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
[Introduction à Python] Comment analyser JSON
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Le record auquel j'étais accro en mettant MeCab dans Heroku
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Notez que j'étais accro à l'interpolation des valeurs manquantes de sklearn (Imputer)
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
Je veux tweeter Twitter avec Python, mais j'y suis accro
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux
J'étais accro à la création d'un environnement Python venv avec VS Code
Une histoire à laquelle j'étais accro à essayer d'obtenir une URL de vidéo avec tweepy
[Introduction à Pytorch] J'ai joué avec sinGAN ♬
J'étais accro à ne pas pouvoir utiliser Markdown pour la description longue de pypi
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Je pensais que c'était la même chose que python, et j'étais accro au problème que l'interpréteur ruby ne démarre pas.
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
P100-PCIE-16GB a été ajouté au GPU de Google Colab avant que je le sache
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
AtCoder AGC 041 C - J'étais accro à la recherche complète de Domino Quality
J'ai pu me moquer d'AWS-Batch avec python, moto, donc je vais le laisser
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Python: j'ai pu récurer en lambda
Quoi qu'il en soit, je veux vérifier facilement les données JSON
J'ai écrit "Introduction à la vérification des effets" en Python
[Introduction à Python] Comment gérer les données au format JSON
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
Introduction à MQTT (Introduction)
Introduction à Scrapy (1)
J'étais sobrement accro à appeler awscli à partir d'un script Python 2.7 enregistré dans crontab
Premiers pas avec Supervisor