Python如何将字典列表中的UNIX时间戳转为UTC时间并导出CSV
字典列表UNIX时间戳转UTC时间并导出CSV实现方案
核心问题说明
- 接口返回的
time字段是13位毫秒级UNIX时间戳,直接写入CSV会显示为无意义长整数,需要先做格式转换 - 原始返回数据中存在重复
qty键,Python字典会自动保留最后一次赋值的有效值,无需额外去重处理 - 原生CSV写入逻辑未指定编码和换行参数,容易出现乱码、空行问题
完整可运行代码
from csv import DictWriter from datetime import datetime, timezone # 获取原始订单数据 orders = client.get_my_sales(symbol='AI95') # 批量转换时间戳为UTC格式字符串 for order in orders: # 毫秒级时间戳转秒级 timestamp_sec = order['time'] / 1000 # 转换为UTC时间并格式化为易读字符串 order['time'] = datetime.fromtimestamp( timestamp_sec, tz=timezone.utc ).strftime('%Y-%m-%d %H:%M:%S') # 写入CSV文件 with open('testcsv.csv', 'w', encoding='utf-8', newline='') as outfile: writer = DictWriter( outfile, fieldnames=('time', 'symbol', 'orderId', 'price', 'qty') ) writer.writeheader() writer.writerows(orders)
关键注意事项
- 时间戳转换必须除以1000:接口返回的是毫秒级时间戳,直接传入
fromtimestamp会得到远超出实际范围的错误时间 - 打开文件时新增
encoding='utf-8'避免中文或特殊字符乱码,新增newline=''避免Windows系统下CSV出现多余空行 - 示例中时间格式化输出为
年-月-日 时:分:秒格式,可根据需要自行调整strftime的格式字符串,比如需要毫秒精度可改为'%Y-%m-%d %H:%M:%S.%f'
转换结果校验
示例中两个时间戳转换后的UTC时间为:
- 1657118024716 → 2022-07-06 14:33:44
- 1657118030000 → 2022-07-06 14:33:50
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

