JSON是一种用于存储和交换数据的语法。
JSON是用JavaScript对象表示法(JavaScript object notation)格式编写的文本。
Python中可导入json模块来处理json数据。
示例
导入json模块:
import json复制
可以使用json.loads()方法解析JSON文本。解析结果存放在一个Python字典里。
示例
从JSON到Python字典的转换:
import json # JSON文本 x = '{ "name":"Kevin", "age":38, "city":"Hangzhou"}' # 解析x: y = json.loads(x) # 解析结果是一个Python字典: print(y["age"])复制
可以使用json.dumps()方法将Python对象转换为JSON。
示例
把Python对象转换为JSON:
import json # a Python object (dict): x = { "name": "Kevin", "age": 38, "city": "Hangzhou" } # 转换为JSON: y = json.dumps(x) # 转换结果是一个JSON字符串: print(y)复制
可以将以下类型的Python对象转换为JSON:
dictlisttuplestringintfloatTrueFalseNone示例
将Python对象转换为JSON,并打印值:
import json print(json.dumps({"name": "Kevin", "age": 38})) print(json.dumps(["自行车", "汽车", "高铁"])) print(json.dumps(("自行车", "汽车", "高铁"))) print(json.dumps("hello")) print(json.dumps(88)) print(json.dumps(95.34)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None))复制
当将Python对象转换为JSON时,Python对象将被转换为对应JSON (JavaScript)类型:
PythonJSONdictObjectlistArraytupleArraystrStringintNumberfloatNumberTruetrueFalsefalseNonenull示例
转换包含所有合法数据类型的Python对象:
import json x = { "name": "Kevin", "age": 38, "married": True, "divorced": False, "children": ("Alice", "Bob"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Mondeo", "mpg": 24.1} ] } print(json.dumps(x))复制
上面的示例打印了一个JSON字符串,没有缩进和换行符,不容易阅读。
json.dumps()方法有一些参数可以格式化输出结果:
示例
使用indent(缩进)参数来定义缩进数量:
json.dumps(x, indent=4)复制
还可以定义分隔符,默认值是(“, “, “: “),表示使用逗号分隔对象,使用冒号分隔键和值:
示例
使用separator参数更改默认分隔符:
json.dumps(x, indent=4, separators=(". ", " = "))复制
json.dumps()方法的sort_keys参数可用于对结果中的键排序:
示例
使用sort_keys参数指定结果是否应该排序:
json.dumps(x, indent=4, sort_keys=True)复制
← Python 日期(Datetime)
Python 正则表达式(RegEx) →