python - 每次使用 pandas 触发脚本时附加到 csv 文件
问题描述
我有一个字典列表。因此,每次触发脚本时,列表 ie'my_list' 都会附加到 csv 中。
例如。示例截图。
但是,当第二次触发脚本时,第二组值列名再次被推送。
例如。example_2nd_trigger_screenshot
我想使用熊猫的CSV就像例如。requirements_screenshot也带有列名。
每次脚本运行时都会有一些 3 个字段值,例如 'fff'、45、'rrr' 并且每次都不同。
因此,我尝试创建 dict 列表,然后将列表附加到 csv 中,但结果不如预期。
这是代码:
import pandas as pd
my_list = [{'name':'someuser','id':111}]
def generate_csv_report(my_list):
try:
filepath = os.path.join("C:\\Users\\user\\Desktop",'user.csv')
df = pd.DataFrame(my_list)
df.to_csv(filepath, mode='a', index=False)
except Exception as e:
raise Exception(str(e))
generate_csv_report(my_list)
有人可以帮我解决问题吗:)
解决方案
import pandas as pd
import os
from csv import DictWriter
my_dict = {'name':'someuser','id':111}
filepath = os.path.join("C:\\Users\\user\\Desktop",'user.csv')
def generate_csv_report(file_path, dict_of_elem, fieldnames):
# Open file in append mode
try:
with open(file_path, 'a+', newline='') as write_obj:
# Create a writer object from csv module
dict_writer = DictWriter(write_obj, fieldnames=fieldnames)
# Add dictionary as wor in the csv
dict_writer.writerow(dict_of_elem)
except Exception as e:
raise Exception(str(e))
for i in range(5):
generate_csv_report(filepath, my_dict, my_dict.keys())
我希望这个解决方案对你有用。请注意,我已将列表替换为字典。
推荐阅读
- java - 如何更改实时数据库中的特定字段
- python - Python SQL fetchall() 不返回任何内容
- regex - htaccess 用问号完整 url 重写
- lua - 为 WoW (Lua) 制作文本框架
- discord - 卡尔机器人中的硬自定义标签(不和谐)
- javascript - Electron webContents 无法注册监听器
- python - ValueError: 层序贯_1 的输入 0 与层不兼容: : 预期 min_ndim=4,发现 ndim=2。收到的完整形状:(32768, 1)
- javascript - 尝试在 discord.js 中写入 `message.channel.send(embed)` 时出现错误,并说无法读取已发送
- ios - 用于完成按钮的文本字段的 swift ui 扩展
- c++ - 我正在尝试 geeksforgeeks 的岛屿数量问题