json模块常用的四种方式:
json四种方法
json.loads #把json字符串 转化成 python对象
json.dumps #把python对象 转换成 json字符串
多s的 处理字符串的;没有多s的 处理文件的
json.load #把文件的json字符串 转化成 python 对象
json.dump #把python对象 转化成 json字符串 并存储到文件
json和python数据类型对应关系:
- python转换为json
Python | JSON |
---|---|
dict | object |
list,tuple | array |
str | string |
int,float,int- & float-derived Enums | number |
True | true |
False | false |
None | null |
- json转换为python
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number(int) | int |
number(real) | float |
true | True |
false | False |
null | None |
例子:
#把py 的dict格式 转化成 json字符串; 使用dumps
import json a = dict(name = "hewj", age=25, message="so good") print(a) print(type(a)) b = json.dumps(a) print(type(b)) print("下面是json格式转换成dict格式") c = json.loads(b) print(type(c)) print(c)输出结果:
{'name': 'hewj', 'age': 25, 'message': 'so good'}
<class 'dict'>
<class 'str'>
下面是json格式 转换成 dict格式
<class 'dict'>
{'name': 'hewj', 'age': 25, 'message': 'so good'}
sort_keys
参数: 表示序列化时是否对dict的key进行排序(dict默认是无序的)
import json x = {'a':'str', 'c': True, 'e': 10, 'b': 11.1, 'd': None, 'f': [1, 2, 3], 'g':(4, 5, 6)} print(x) print(type(x)) y = json.dumps(x, sort_keys=True) print(y)
输出结果:
{'a': 'str', 'c': True, 'e': 10, 'b': 11.1, 'd': None, 'f': [1, 2, 3], 'g': (4, 5, 6)}
<class 'dict'>
{"a": "str", "b": 11.1, "c": true, "d": null, "e": 10, "f": [1, 2, 3], "g": [4, 5, 6]}
例子2:把json字符串 写入文件,并在终端读取
import codecs import json ##把json 字符串 写入 文件 1.txt 中 jsondata = '{"a":1, "b":2, "c":3, "d":4}' with codecs.open('1.txt', 'w') as f: json.dump(jsondata, f) #把python对象 转化成 json字符串 并存储到1.txt #从文件1.txt 读取 json with codecs.open('1.txt', 'r') as f: m = json.load(f) #读取1.txt 中的json字符串并转换成python对象 print(m) print(type(m))
输出结果:
{"a":1, "b":2, "c":3, "d":4}
<class 'str'>
写入的文件