1. JSON简介JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的对象字面量语法,但...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的对象字面量语法,但是独立于语言,几乎所有现代编程语言都支持JSON,这使得JSON成为跨语言交换数据的理想格式。JSON格式支持以下几种类型的值:
Python内置了json模块,可以轻松地处理JSON数据。以下是如何在Python中读取JSON文件的基本步骤:
import jsonwith open('data.json', 'r', encoding='utf-8') as f: data = json.load(f)json.load()函数将JSON格式的文件读取到Python对象中。下面是一些解析JSON数据的示例:
name = data['name']
print(name) # 输出:John Doeaddress = data['address']
city = address['city']
print(city) # 输出:New Yorkfor item in data['items']: print(item['name'])在读取包含中文的JSON文件时,需要指定编码格式为utf-8:
with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f)当JSON文件包含复杂的嵌套结构时,可以使用递归函数来遍历和解析数据。
在读取和处理JSON文件时,可能会遇到各种异常,例如文件不存在、JSON格式错误等。可以使用try-except语句来捕获和处理这些异常。
try: with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f)
except json.JSONDecodeError as e: print("JSON解码错误:", e)
except FileNotFoundError as e: print("文件未找到:", e)对于大型JSON文件,可以考虑使用ijson库来逐步读取和处理数据,避免一次性加载整个文件到内存中。
import ijson
with open('large_data.json', 'r', encoding='utf-8') as f: parser = ijson.parse(f) for prefix, event, value in parser: if (prefix, event) == ('item', 'start_map'): current_item = {} elif (prefix, event) == ('item', 'end_map'): print(current_item) else: key = prefix.split('/')[-1] current_item[key] = value通过以上步骤和技巧,您可以轻松地在Python中读取和处理JSON文件。