When using json in Python, you mainly use the json module. Json is a good format for data interaction, so in many cases, you can use the json data format as a program between interface.
#!/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
The contents of the kel.txt file are as follows:
{ "中文":"kel", "fist":"kel" }
The execution results are as follows:
{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"}
The main methods used are json.loads and json.dumps
Note that the parameter in loads must be string, so when opening When reading a file, you must use the read method, otherwise an error will occur.
The loads method is mainly used to load json data into objects in python, while the dumps method is mainly used to modify python objects into json format.
I started to encounter an error as follows:
[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
The main reason is because,,, in the json data format must start with double quotes Yes, the wrong json file is as follows:
{ "fist":'kel' }
kel.py content is as follows:
#!/usr/bin/env python #-*- coding:utf-8 -*- import json j = json.loads(open('kel.txt').read()) print type(j),j
Double quotes. . . Single quotation marks, I can’t distinguish them stupidly
Sometimes, when performing the loads method, it is because a single quotation mark string is generated. . . This is especially true in python. It has nothing to do with other things, it’s mainly about quotation marks! ! !
The above is the detailed content of Detailed explanation of the basic usage of json in python. For more information, please follow other related articles on the PHP Chinese website!