loads和load就是反序列化,同理load也是意味着要通过读取文件内容后来反序列化json内容为python对象。 >>> data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
>>> data2 = json.dumps(data)
>>> data2
'[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]'
>>> data3 = json.loads(data2)
>>> data3
[{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
################
# dump、dumps
# coding = gbk
import json
dicta = {"age":18, "name":"chang",}
with open("test.json", "w", encoding='utf-8') as fp:
# indent 格式化保存字典,默认为None,小于0为零个空格
json.dump(dicta, fp, indent=4)
# f.write(json.dumps(a, indent=4))
执行结果是:
{
"age": 18,
"name": "chang"
}
################
#python对象与json对象的对应关系
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+