Bei der Verwendung von JSON in Python verwenden Sie hauptsächlich das JSON-Modul. JSON ist ein gutes Format für die Dateninteraktion, daher kann das JSON-Datenformat in vielen Fällen als Schnittstelle zwischen Programmen verwendet werden.
#!/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
Der Inhalt der Datei kel.txt lautet wie folgt:
{ "中文":"kel", "fist":"kel" }
Die Ausführungsergebnisse sind wie folgt:
{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"}
Die hauptsächlich verwendeten Methoden sind JSON .loads und json.dumps
Beachten Sie, dass die Parameter in Loads Zeichenfolgen sein müssen. Beim Öffnen der Datei müssen Sie daher die Lesemethode verwenden, da sonst ein Fehler auftritt.
Die Loads-Methode wird hauptsächlich zum Laden von JSON-Daten in Objekte in Python verwendet, während die Dumps-Methode hauptsächlich zum Ändern von Python-Objekten in das JSON-Format verwendet wird.
ist wie folgt auf einen Fehler gestoßen:
[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
Der Hauptgrund liegt darin, dass ,,, in den JSON-Daten enthalten ist Format Es muss mit doppelten Anführungszeichen beginnen. Die falsche JSON-Datei lautet wie folgt:
{ "fist":'kel' }
#!/usr/bin/env python #-*- coding:utf-8 -*- import json j = json.loads(open('kel.txt').read()) print type(j),j