Lorsque vous utilisez json en Python, vous utilisez principalement le module json. json est un bon format pour l'interaction des données, donc dans de nombreux cas, vous pouvez utiliser le format de données json comme interface de programme entre.
#!/usr/bin/env python #-*- coding:utf-8 -*- import json print json.load(open('kel.txt')) #deserialize string or unicode to python object j = json.loads(open('kel.txt').read(),encoding='utf-8') print type(j),j for i in j: print i k = json.dumps(j,encoding='utf-8').decode('utf-8') print k
Le contenu du fichier kel.txt est le suivant :
{ "中文":"kel", "fist":"kel" }
Exécuter Les résultats sont les suivants :
{u'\u4e2d\u6587': u'kel', u'fist': u'kel'} <type 'dict'> {u'\u4e2d\u6587': u'kel', u'fist': u'kel'} 中文 fist {"\u4e2d\u6587": "kel", "fist": "kel"}
Les principales méthodes utilisées sont json.loads et json.dumps
Notez que les paramètres dans les charges doivent être une chaîne, donc lors de l'ouverture du fichier, vous devez utiliser la méthode read, sinon une erreur se produira.
La méthodeloads est principalement utilisée pour charger des données json dans des objets en python, tandis que la méthode dumps est principalement utilisée pour modifier des objets python au format json.
a commencé à rencontrer une erreur comme suit :
[root@python 56]# python kel.py Traceback (most recent call last): File "kel.py", line 5, in <module> json.load(open('kel.txt')) File "/usr/local/python/lib/python2.7/json/__init__.py", line 291, in load **kw) File "/usr/local/python/lib/python2.7/json/__init__.py", line 339, in loads return _default_decoder.decode(s) File "/usr/local/python/lib/python2.7/json/decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/python/lib/python2.7/json/decoder.py", line 382, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
La raison principale est que,,, doit être double dans les données json format Le fichier json incorrect commençant par des guillemets est le suivant :
{ "fist":'kel' }
Le contenu de kel.py est le suivant :
#!/usr/bin/env python #-*- coding:utf-8 -*- import json j = json.loads(open('kel.txt').read()) print type(j),j
guillemets doubles. . . Je n'arrive pas à faire la différence entre les guillemets simples
Parfois, lors de l'exécution de la méthodeloads, une chaîne avec des guillemets simples est générée. . . C’est particulièrement vrai en python. Cela n’a rien à voir avec d’autres choses, il s’agit principalement de guillemets ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!