问题是这样的:
从数据库查询出来的数据,其他字段都是一对一,唯独:修复方式和单位,是一对多的数据,
其中一对多的数据查询出来为此格式(列表套字典):
[{"mode": "333","unit": "999"},{"mode": "666","unit": "000"}]
现在需要在导出时,格式为一下样式,有没有啥方法可以帮忙解决下!
我用的python的pd.DataFrame()函数,
现在就是卡在了一对多这个上面了,具体可以看图片
python导出excel的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 【以下回答由 GPT 生成】
我可以使用Python的pandas库来解决这个问题。下面是一个具体的解决方案:
- 首先,将一对多的数据转换为pandas的DataFrame格式。假设一对多的数据存储在一个名为data的列表中:
import pandas as pd data = [{"mode": "333", "unit": "999"}, {"mode": "666", "unit": "000"}] df = pd.DataFrame(data)
- 然后,创建一个新的Excel文件,并将DataFrame写入其中:
# 创建一个新的Excel文件 writer = pd.ExcelWriter('output.xlsx') # 将DataFrame写入Excel文件的Sheet1工作表中 df.to_excel(writer, sheet_name='Sheet1', index=False) # 保存Excel文件 writer.save()
- 接下来,使用openpyxl库来处理Excel文件中的一对多数据。首先,安装openpyxl库:
pip install openpyxl
- 然后,使用openpyxl打开Excel文件并遍历每一行,将一对多的数据按照指定格式写入Excel文件:
from openpyxl import load_workbook # 打开Excel文件 workbook = load_workbook('output.xlsx') # 选择Sheet1工作表 sheet = workbook['Sheet1'] # 遍历每一行 for row in sheet.iter_rows(min_row=2, values_only=True): # 获取一对多的数据 data = [{"mode": value, "unit": row[2]} for value in row[1].split(",")] # 将一对多数据写入相应的单元格 for i, d in enumerate(data): sheet.cell(row=2+i, column=3).value = d['unit'] sheet.cell(row=2+i, column=4).value = d['mode'] # 保存Excel文件 workbook.save('output.xlsx')
这样,你就可以将一对多的数据导出为指定样式的Excel表格了。请注意,代码中的"2"是根据图中的示例表格确定的起始行号。
希望这个解决方案能对你有所帮助!如果你还有任何问题,请随时提问。
【相关推荐】
- 建议你看下这篇博客👉 :Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例(增删改查排序之选择指定列、根据条件选择特定数据、赋值、列名重命名、修改列数据、处理缺失值、列合并、分组之详细攻略
- 除此之外, 这篇博客: Python数据分析之pandas库的使用详解中的 4.2.2.2 查询多列,结果是一个pd.DataFrame 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 远程访问linux主机超时
- ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
- ¥15 CPU卡指令整合指令数据都在图片上
- ¥15 火车票关联12306问题
- ¥15 odoo17处理受托加工产品
- ¥15 如何用MATLAB编码图三的积分
- ¥15 圆孔衍射光强随孔径变化
- ¥15 MacBook pro m3max上用vscode运行c语言没有反应
- ¥15 ESP-PROG配置错误,ALL ONES
- ¥15 结构功能耦合指标计算