python json

python json 模块提供了四个方法: dumps、dump、loads、load

转换映射表

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

对象=>json

dumps 和 dump 序列化方法

dumps

dumps只完成了序列化为str

>>> import json
>>> data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
>>> json_data = json.dumps(data)
>>> print(json_data)
[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]

dump

dump必须传文件描述符,将序列化的str保存到文件中

import json
a = {"name":"Tom", "age":23}
with open("test.json", "w", encoding='utf-8') as f:
    # indent 超级好用,格式化保存字典,默认为None,小于0为零个空格
    f.write(json.dumps(a, indent=4))
    # json.dump(a,f,indent=4)   # 和上面的效果一样

反序列化

loads和load 反序列化方法

loads

loads 只完成了反序列化,

>>> import json
>>> text = json.loads(jsonData)
>>> print(text)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

load

load 只接收文件描述符,完成了读取文件和反序列化

  • load.py
import json
with open("test.json", "r", encoding='utf-8') as f:
    aa = json.loads(f.read())
    f.seek(0)
    bb = json.load(f)    # 与 json.loads(f.read())
print(aa)
print(bb)
  • 输出
{'name': 'Tom', 'age': 23}
{'name': 'Tom', 'age': 23}

拓展阅读

java json

个人收获

json

json 是一套标准,各种语言都有字符串,都将可以将对象按照一定的对象规则转换过来。

参考资料

  • json

json — JSON encoder and decoder

python json模块 超级详解

Python json模块完全攻略(超级详细)

  • 开源框架

picle

Demjson