【星海随笔】Python-JSON数据的处理
JSON 是一种轻量级的数据交换格式,主要用于在客户端和服务器之间传输数据。
JSON 在 python 里是一个标准库
https://www.jyshare.com/compile/9/
import json
data = {'name': 'Alice', 'age': 30, 'city': 'New York'}
json_string = json.dumps(data)
print(json_string)json_data = '{"name": "Bob", "age": 25, "city": "Los Angeles"}'
python_obj = json.loads(json_data)
print(python_obj)
{“name”: “Alice”, “age”: 30, “city”: “New York”}
{‘name’: ‘Bob’, ‘age’: 25, ‘city’: ‘Los Angeles’}
**json.dumps(obj): 将 Python 对象转换为 JSON 格式的字符串。
json.loads(s): 将 JSON 格式的字符串转换为 Python 对象。
json.dump(obj, fp): 将 Python 对象写入文件(以 JSON 格式)。
json.load(fp): 从文件中读取 JSON 格式的数据并转换为 Python 对象。
注:Json 是轻量级的 无法直接序列化 datetime 格式,需要使用其他方式进行对 datetime 的格式进行自定义处理。例如:修改 Super 继承 DateTimeEncoder 或者 datetime 转化为 str 。
方法1
import json
from datetime import datetimeclass DateTimeEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.isoformat() # 或者使用其他格式化方法return super().default(obj)data = {'name': 'Alice','timestamp': datetime.now()
}json_str = json.dumps(data, cls=DateTimeEncoder)
print(json_str)
方法2
from datetime import datetime, timezone
# 创建一个包含时区信息的 datetime 对象
dt_with_tz = datetime(2023, 10, 5, 14, 48, 0, tzinfo=timezone.utc)# 使用 isoformat() 方法格式化为字符串
dt_str_with_tz = dt_with_tz.isoformat()
print(dt_str_with_tz) # 输出: '2023-10-05T14:48:00+00:00'# 创建一个不包含时区信息的 datetime 对象
dt_without_tz = datetime(2023, 10, 5, 14, 48, 0)# 使用 isoformat() 方法格式化为字符串
dt_str_without_tz = dt_without_tz.isoformat()
print(dt_str_without_tz) # 输出:" "
Supports six types of data structures
字符串(string)
数字(number)
对象(object,即键值对)
数组(array)
布尔值(true/false)
空值(null)