使用Python将CSV按起止日期分组转换为指定格式字典(Json)存入数据库
实现方案
直接用Pandas处理即可,内置的分组聚合能力可以完美匹配你的需求,无需手动写复杂的for循环判断逻辑,500行的小数据量完全没有性能压力。
如果环境中没有安装依赖,执行以下命令安装:
pip install pandas openpyxl
其中openpyxl是读取Excel文件的依赖,仅处理CSV可以不安装。
完整代码示例
import pandas as pd # 1. 读取CSV/Excel文件 # 读Excel替换为 pd.read_excel("你的文件路径.xlsx") df = pd.read_csv("你的数据文件路径.csv") # 2. 按start_date、end_date分组,拼接Number为逗号分隔的字符串 grouped = df.groupby( ["start_date", "end_date"], as_index=False )["Number"].agg(lambda num_series: ",".join(num_series.astype(str))) # 3. 生成要求格式的字典列表,直接循环处理即可 result_list = [] for _, row in grouped.iterrows(): req_dict = { "request": [ {"key": "AMI_LIST", "value": row["Number"]}, {"key": "START_DATE", "value": row["start_date"]}, {"key": "END_DATE", "value": row["end_date"]} ] } result_list.append(req_dict) # 后续直接循环result_list写入数据库即可,示例: # for item in result_list: # 数据库写入逻辑(item)
补充说明
- 你给出的示例输出中dict2的AMI_LIST值多写了一位7,代码实际生成的是和输入一致的
777777777 - 如果需要处理空值、Number格式校验等额外逻辑,只需要在分组聚合的lambda函数中补充对应处理即可,扩展非常方便
内容的提问来源于stack exchange,提问作者Shubham Srivastava
相关产品推荐
相关产品推荐

