在本文中,我们将说明如何在Python中解析JSON数据。JSON是一种人类可读的基于文本的数据格式,它与语言无关,并且用于应用程序之间的数据交换。安装Python可参考在Ubuntu 18.04系统上安装Python 3.8的两种方法。
Python JSON 允许您编码和解码JSON数据的json模块是Python标准库的一部分。 JSON是代表数据的字符串,编码或序列化意味着将Python对象转换为JSON字符串,可以将其存储在文件中或通过网络传输,解码或反序列化是将JSON字符串转换为Python对象的反向编码过程。 下图显示了Python对象及其等效的JSON表示形式:
要使用JSON,只需将模块导入文件顶部: import json
用Python编码JSON json模块有两种将Python对象编码为JSON格式的字符串的方法:dump()和dumps()。 dump()方法将输出发送到类似文件的对象,它带有两个位置参数:要编码的对象和类似文件的对象,这是一个例子: data = { "country": "Germany", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } with open("file.json", "w") as file: json.dump(data, file) 如果运行脚本,它将创建一个名为file.json的文件: {"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}} dumps()方法的功能与dump()相同,但它不是将输出发送到类似文件的对象,而是返回一个字符串: data = { "country": "Germany", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } json.dumps(data) 返回: '{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}' 两种方法都接受相同的关键字参数,例如,如果您要分析或调试JSON dat,则可能要指定缩进级别: data = { "country": "Germany", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } print(json.dumps(data, indent=2)) 返回: { "country": "Germany", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } }
用Python解码JSON 要将JSON编码的数据转换为Python对象,请使用load()和load()方法。 load()方法从类似文件的对象中读取JSON结构,并将其转换为Python对象。 假设我们有以下JSON文件,名为file.json: [ { "userId": 1, "id": 1, "title": "Meet with Lisa", "completed": true }, { "userId": 1, "id": 2, "title": "Design a prototype", "completed": false } ] 要将JSON数据转换为Python表示形式,您可以使用以下代码: import json with open('file.json') as f: data = json.load(f) type(data) JSON转换为Python列表,您可以在代码中使用它: <class 'list'> loads()方法将包含JSON文档的字符串转换为Python对象: import json json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}' print(json.loads(json_str)) 该字符串将转换为Python字典: {'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'} 这是一个更高级的示例,显示了如何发出api请求和解码JSON数据: import json import requests response = requests.get("https://jsonplaceholder.typicode.com/users") users = json.loads(response.text) print(users)
结论 我们在上面向您介绍了如何使用Python编码和解码JSON数据,大体操作就是这样。
相关主题 |