首页 » module for python » Python模块之json

Python模块之json

 
文章目录

python模块之json

json是一种轻量级的数据交换格式,json模块有两种常用的方法:

  1. json.dumps:将Python对象编码成JSON字符串
  2. json.loads:将已编码的JSON字符串解码为Python对象
  3. json.dump: 不仅可以把Python对象编码为string,还可以写入文件。
  4. json.load: 可以直接load到文件

json.dumps

语法:


json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

实例:

>>> import json
>>> data = [ {'a':1,'b':2,'c':3,'dd':4,'e':'abc'}]
>>> type(data)
<class 'list'>
>>> data[0]
{'a': 1, 'b': 2, 'c': 3, 'dd': 4, 'e': 'abc'}
>>> a = json.dumps(data)
>>> print(a)
[{"a": 1, "b": 2, "c": 3, "dd": 4, "e": "abc"}]
>>> type(a)  #转成json之后是字符串类型了。
<class 'str'>
>>> #让json数据格式化输出:
...
>>>
>>> json.dumps({'a':'abcde','bbb':'123'},sort_keys=True,indent=4,separators=(',',':'))
'{\n    "a":"abcde",\n    "bbb":"123"\n}'
>>> b=json.dumps({'a':'abcde','bbb':'123'},sort_keys=True,indent=4,separators=(',',':'))
>>> print(b)
{
    "a":"abcde",
    "bbb":"123"
}
>>>

python数据类型向json类型转化对照表:

Python JSON
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null

json.loads

json.loads用于解码JSON数据。

语法:


json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例:

>>> jsonData = '{"a":1,"B":2,"dd":44,"e":"safa"}'
>>> text = json.loads(jsonData)
>>> print(text)
{'a': 1, 'B': 2, 'dd': 44, 'e': 'safa'}
>>> type(text)
<class 'dict'>

json类型转换到python的类型对照表:

JSON Python
object dict
array list
string unicode
number(int) int,long
number(real) float
true True
false False
null None

json.dump

实例:

data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
with open('output.json','w') as fp:
    json.dump(data,fp)
cat output.json
[{"a": "A", "c": 3.0, "b": [2, 4]}]

json.load

实例:

with open('output.json') as fp:
    print type(fp)
    loaded_json = json.load(fp)
<type 'file'>
# 和之前一样,还是listprint type(decoded_json)
<type 'list'>
# 像访问 data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]一样print decoded_json[0]['a']
A

原文链接:Python模块之json,转载请注明来源!

1