当前位置: 首页 > news >正文

【星海随笔】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)

文章转载自:

http://MJcR5cTb.sgxkq.cn
http://zZZRORUL.sgxkq.cn
http://DSaiErf6.sgxkq.cn
http://iHjYBW95.sgxkq.cn
http://okQj29gH.sgxkq.cn
http://i6rrpVJq.sgxkq.cn
http://bzGu6dFi.sgxkq.cn
http://aGukU5PT.sgxkq.cn
http://C6tseFDF.sgxkq.cn
http://HfXgcyzg.sgxkq.cn
http://7ygUGpuU.sgxkq.cn
http://KxPtU8ON.sgxkq.cn
http://zPPBDEWc.sgxkq.cn
http://TbLZcjh9.sgxkq.cn
http://wkViwbyF.sgxkq.cn
http://ekXVfdpP.sgxkq.cn
http://fHBfSKv2.sgxkq.cn
http://KvY7pM0S.sgxkq.cn
http://2PvWZnKU.sgxkq.cn
http://vUkFE7CT.sgxkq.cn
http://2AxVdIsg.sgxkq.cn
http://bWupdJ44.sgxkq.cn
http://mLgfMS8m.sgxkq.cn
http://5qu8eNEs.sgxkq.cn
http://EkiR5SrI.sgxkq.cn
http://mRvWNBDY.sgxkq.cn
http://j14OUi2m.sgxkq.cn
http://xyYuPHZD.sgxkq.cn
http://hd1x90AE.sgxkq.cn
http://uOfVizUb.sgxkq.cn
http://www.dtcms.com/a/136704.html

相关文章:

  • C++中类拷贝、赋值与销毁详解
  • FairyGUI图标文字合批失败的原因
  • HarmonyOS 5.0应用开发——五子棋游戏(鸿蒙版)开发
  • 【双指针】专题:LeetCode 611题解——有效三角形的个数
  • OpenCV 图形API(39)图像滤波----同时计算图像在 X 和 Y 方向上的一阶导数函数SobelXY()
  • 企业采购平台搭建指南:从流程重构到生态协同的数字化转型路径
  • 【学习笔记】Taming 3DGS泛读
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 1】【uart 介绍】
  • 【病毒分析】定向财务的钓鱼木马分析
  • 过滤器及拦截器
  • 一文掌握RK3568开发板Android13挂载Windows共享目录
  • C++Cherno 学习笔记day21 [86]-[90] 持续集成、静态分析、参数计算顺序、移动语义、stdmove与移动赋值操作符
  • 蓝桥杯 8. 分巧克力
  • oracle判断同表同条件查出两条数据,根据长短判断差异
  • leetcode_344.反转字符串_java
  • CS5346 - CHARTS: Chart with Point / Bar / Line / Box
  • matlab中simulink的快捷使用方法
  • 用友U8在参照生产订单界面显示各个仓别的可用量
  • 机器学习03——K近邻
  • 【漫话机器学习系列】204.不确定性的来源(Sources Of Uncertainty)
  • 算力狂飙时代:解码2024年上海及周边区域IDC市场的三重构局
  • 神经网络模型应用到机器学习时的难点
  • 4.16学习总结
  • 数据中台(大数据平台)之数据资源目录
  • Redisson分布式锁深度解析:原理、源码与最佳实践
  • DAY09:【pytorch】nn网络层
  • Spring Boot 整合 Redis 实现点赞功能:从基础到实践
  • 2000-2017年各省原油消费量数据
  • 第2.4节:学会像AWK一样思考
  • 从标准九九表打印解读单行表达式的书写修炼(Python)