json模块日常使用中主要有4个方法,即:
1、json.dump()
2、json.load()
3、json.dumps()
4、json.loads()
with open('my.json', 'w') as f:# 写入json.dump(data, f)with open('my.json', 'r') as f:# 读取data = json.load(f)
json.dumps 用于将 Python 对象编码成 JSON 字符串。请注意!dumps不仅仅只是可以转换dict字典类型。列表也是可以的!!!
import jsondata11 = [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]data21 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}data12 = json.dumps(data11)data22 = json.dumps(data21)print(data12)print(data22)
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 数据。该函数返回 Python 字段的数据类型。
import jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'text = json.loads(jsonData)print(text)print(type(text)) # <class 'dict'>
妙用 json.dumps(dict1, sort_keys=True):
在目前接口加解密中,经常会存在这样的需求:将数据按ascii码值从小到大
key1value1keysvalues2...的形式。即会用到这个。
import jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'text = json.loads(jsonData)print(text)print(type(text)) # <class 'dict'># 将数据按 ascii码值从小到大排序后合并 key-valuedict1 = {"c": 1, "a": 2, "b": 3, "e": 4, "d": 5}j2 = json.loads(json.dumps(dict1, sort_keys=True))t2 = "".join([key + str(value) for key, value in j2.items()])print(t2) # a2b3c1d5e4print(type(t2)) # <class 'str'>