Python面试题更新 2026-08-05

在 Python 中,有哪些常见方法可以实现对 JSON 文件的读取与写入操作?

编码实现JSONPython

考察说明

考查候选人对 Python 标准库 json 模块及相关方法的掌握程度,以及对文件操作与序列化细节的理解。

回答思路

  1. 【回答框架 1】Python 处理 JSON 主要依赖标准库 json 模块,核心函数为 json.dump 和 json.load,分别用于将 Python 对象序列化并写入文件、从文件读取并反序列化。此外还有 json.dumps 和 json.loads,用于字符串与对象间的转换,常用于网络传输或内存中数据交换。
  2. 【回答框架 2】写入 JSON 文件时,常见做法是使用 with open(file_path, 'w') as f: json.dump(data, f)。需要注意 ensure_ascii 参数,默认 True 会将非 ASCII 字符转义为 \uXXXX,若需保留原始字符可设为 False。indent 参数用于美化输出,使文件更可读。
  3. 【回答框架 3】读取 JSON 文件时,使用 with open(file_path, 'r') as f: data = json.load(f)。需处理可能出现的 JSONDecodeError,比如文件内容格式错误或文件不存在时的 FileNotFoundError。对于大文件,可使用 json.JSONDecoder 逐行解析,降低内存占用。
  4. 【回答框架 4】除标准库外,pandas 的 read_json 和 to_json 方法也可用于表格型 JSON 数据,但返回 DataFrame,适合数据分析场景。对于复杂嵌套结构,标准库 json 模块仍是通用选择。
  5. 【回答框架 5】使用 json.load 时,若文件编码非 UTF-8,需在 open 中指定 encoding 参数,如 encoding='utf-8'。同时注意 json 文件顶层必须是合法 JSON 类型,如对象或数组,否则会报错。
  6. 【关键点 1】json.dump 和 json.load 是文件读写的基本方法,对应 dumps 和 loads 处理字符串。
  7. 【关键点 2】ensure_ascii=False 可保留中文字符,indent 可格式化输出。
  8. 【关键点 3】读取时需处理 JSONDecodeError 和文件不存在的异常。
  9. 【关键点 4】大文件可用 json.JSONDecoder 流式解析,减少内存占用。
  10. 【关键点 5】pandas 的 to_json/read_json 适用于表格数据,但通用性不如标准库。
  11. 【易错点 1】注意 json.dump 不能直接序列化自定义对象,需先转为字典,否则会抛 TypeError。
  12. 【易错点 2】不要混淆 json.dump 和 json.load 的文件参数,dump 需要可写文件,load 需要可读文件。
  13. 【易错点 3】使用 json.loads 解析字符串时,若字符串包含多余逗号或单引号,会引发解析错误,需先清洗数据。