Django中Python数据格式化问题:数据库数据转换需求
数据格式转换实现方案
需求说明
原始数据(从数据库获取):
This is how it is. [{'date': datetime.date(2023, 5, 27), 'pnl': '69'}, {'date': datetime.date(2023, 7, 23), 'pnl': '81'}, {'date': datetime.date(2023, 9, 12), 'pnl': '67'} ]目标格式:
This is how I want it [[69, 27, 5, 2023],[81, 23, 7, 2023],[67, 12, 9, 2023]] [0] = pnl, [1] = 日, [2] = 月, [3] = 年
实现代码(Python)
import datetime # 数据库返回的原始数据 original_data = [ {'date': datetime.date(2023, 5, 27), 'pnl': '69'}, {'date': datetime.date(2023, 7, 23), 'pnl': '81'}, {'date': datetime.date(2023, 9, 12), 'pnl': '67'} ] # 格式转换逻辑 formatted_data = [] for item in original_data: # 将pnl从字符串转为整数 pnl = int(item['pnl']) # 从date对象中提取日、月、年 day = item['date'].day month = item['date'].month year = item['date'].year # 按指定顺序组装子列表 formatted_data.append([pnl, day, month, year]) # 输出目标格式内容 print("This is how I want it") print(formatted_data) print("[0] = pnl, [1] = 日, [2] = 月, [3] = 年")
代码说明
- 遍历原始数据中的每个字典元素
- 把字符串类型的
pnl转换为整数,保证格式统一 - 直接从
datetime.date对象中提取日、月、年属性 - 按
[pnl, 日, 月, 年]的顺序组装子列表,最终收集为目标二维列表
内容的提问来源于stack exchange,提问作者Mt Khalifa
相关产品推荐
相关产品推荐

