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

  [py]
1
2
3
4
5
>>> 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保存到文件中

  [py]
1
2
3
4
5
6
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 只完成了反序列化,

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

load

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

  • load.py
  [py]
1
2
3
4
5
6
7
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)
  • 输出
  [plaintext]
1
2
{'name': 'Tom', 'age': 23} {'name': 'Tom', 'age': 23}

拓展阅读

java json

个人收获

json

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

参考资料

  • json

json — JSON encoder and decoder

python json模块 超级详解

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

  • 开源框架

picle

Demjson