使用JSON函数,需要先导入 import json
json相关方法:
函数 | 描述 |
---|---|
json.dumps | 将 Python 对象编码成 JSON 字符串 |
json.loads | 将已编码的 JSON 字符串解码为 Python 对象 |
json.dumps
json.dumps 用于将 Python 对象编码成 JSON 字符串。
data={"username":1,"password":2,"type":3} json = json.dumps(data) print(json)
可以看到结果,但是感觉看不出什么变化,接下来改变下参数,使他改变下显示格式
data={"username":1,"password":2,"type":3} json = json.dumps(data,separators=(',',':'),indent=2) #separators :以什么分隔;indent :缩进几格 print(json)
具体参数: json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
skipkeys=true :如果字典里的值有不属于基础类型str/int/float/bool/none 的,将会跳过而不会报TypeError indent=2 :缩进的格数 separators=None: 以什么分隔 sort_keys=False :是否根据key排序
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.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。(可获取内含字段的值)
eg:
data = '{"name":"test", "type":{"name":"seq", "parameter":["1", "2"]}}' s = json.loads(data) print(s) # print(s.keys()) print(s["name"]) print(s["type"]["name"]) print(s["type"]["parameter"][1])
执行结果:
json 类型转换到 python 的类型对照表:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |