Python JSON处理完全指南

JSON是什么?

JSON(JavaScript Object Notation)是一种轻量级数据交换格式,广泛用于Web开发中前后端数据传输。

Python JSON基本操作

import json

# Python对象转JSON字符串
data = {'name': '小明', 'age': 18}
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
# {"name": "小明", "age": 18}

# JSON字符串转Python对象
data = json.loads('{"name": "小明", "age": 18}')
print(data['name'])  # 小明

文件操作

import json

# 写入JSON文件
data = {'users': [{'name': '小明', 'age': 18}]}
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

# 读取JSON文件
with open('data.json', 'r', encoding='utf-8') as f:
    loaded = json.load(f)
print(loaded['users'][0]['name'])  # 小明

高级用法

格式化输出

data = {'a': 1, 'b': {'c': 2}}
print(json.dumps(data, indent=2, sort_keys=True))

处理datetime

from datetime import datetime

def datetime_serializer(obj):
    if isinstance(obj, datetime):
        return obj.strftime('%Y-%m-%d %H:%M:%S')
    raise TypeError(f'Type {type(obj)} not serializable')

data = {'time': datetime.now()}
json_str = json.dumps(data, default=datetime_serializer)

总结

JSON是Python开发中最常用的数据格式之一。掌握JSON的基本操作,是Web开发、爬虫、API交互的基础技能。