You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含动态日期键的Python字典列表自动写入Excel或CSV?

解决方案:处理动态日期键并自动写入Excel/CSV

嘿,这个需求我之前处理类似数据时也碰到过,动态键确实有点小麻烦,但拆解下来其实很简单,咱们一步步来搞定:

第一步:统一动态日期键的格式

首先得把每个字典里的old_date或new_date统一成固定键名,比如date,这样后续写入文件时列名能保持一致:

date_candidates = ['old_date', 'new_date']
test = [
    {'product': 'Business 1', 'amount': '1000000', 'old_date': '01 Mar,2018 19:18:29', 'num': '2', 'status': 'review'},
    {'product': 'Business 2', 'amount': '1000000', 'new_date': '01 Mar,2018 19:18:29', 'num': '92', 'status': 'progress'}
]

# 处理数据,将动态日期键转为固定的'date'键
processed_data = []
for item in test:
    # 找到当前字典里存在的日期键
    date_key = next(key for key in date_candidates if key in item)
    # 复制原字典避免修改原始数据,然后替换键名
    processed_item = item.copy()
    processed_item['date'] = processed_item.pop(date_key)
    processed_data.append(processed_item)

处理完后,processed_data里的所有字典都会有统一的date键,后续操作就顺畅多了。

第二步:自动写入CSV文件

用Python内置的csv模块就能轻松实现,代码简洁直接:

import csv

# 定义输出的列顺序,确保列的排列符合预期
fieldnames = ['product', 'amount', 'date', 'num', 'status']

with open('business_data.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    # 写入表头
    writer.writeheader()
    # 批量写入所有数据
    writer.writerows(processed_data)

第三步:自动写入Excel文件

如果需要写入.xlsx格式,用pandas会更省心,先安装依赖包:

pip install pandas openpyxl

然后编写代码:

import pandas as pd

# 将处理好的数据转为DataFrame
df = pd.DataFrame(processed_data)
# 指定列的顺序(可选,确保列排列符合需求)
df = df[['product', 'amount', 'date', 'num', 'status']]
# 写入Excel,index=False表示不生成默认的索引列
df.to_excel('business_data.xlsx', index=False, engine='openpyxl')

小补充

  • 如果担心数据里同时出现old_date和new_date(虽然你说不会,但可以加个异常处理):比如在找日期键时,判断如果两个键都存在,就根据业务规则选一个,或者抛出提示。
  • 数据量很大的话,pandas的效率会比内置csv模块更高,而且处理复杂格式(比如日期格式化)也更灵活。

内容的提问来源于stack exchange,提问作者Bharat Bittu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:16:52