Python 如何在列表中插入键值对并写入csv文件

Python 如何在列表中插入键值对并写入csv文件,python,python-3.x,csv,Python,Python 3.x,Csv,我是Python新手,公司的人力资源信息系统给了我一个任务。因此,我从一个原始的.csv文件中编写了一个代码,该文件将通过过滤所有其他数据重新编写,并确保将列出一个人进出的第一个实例。如何在同一行的列表中插入或追加一个人的时间 employeeInfo2 = {'Name': employeeName, 'Date': employeeDate, 'Status': employeeStatus} if employeeInfo2 not in employeeProfile:

我是Python新手,公司的人力资源信息系统给了我一个任务。因此,我从一个原始的.csv文件中编写了一个代码,该文件将通过过滤所有其他数据重新编写,并确保将列出一个人进出的第一个实例。如何在同一行的列表中插入或追加一个人的时间

employeeInfo2 = {'Name': employeeName, 'Date': employeeDate, 'Status': employeeStatus}
        if employeeInfo2 not in employeeProfile:
            employeeProfile.append(employeeInfo2)
当我尝试将这一行代码放在上述代码的正下方时,时间在csv文件中显示为新行或写在新行上

employeeProfile.append({'Time': employeeTime})
我原以为employeeTime将与每行数据对齐,但事实并非如此。可能是因为employeeProfile.append({'Time':employeeTime})位于新行上。最好的方法应该是什么


好吧,看看你的代码,当你在employeeProfile中编写b时,没有时间和插入

简单地说,当您使用csv_write.writerow(b)时,它将自动在csv文件中下降1行。您可以将时间密钥附加到employeeprofile中存储的dict

employeeInfo2 = {'Name': employeeName, 'Date': employeeDate, 'Status': employeeStatus}

if employeeInfo2 not in employeeProfile:
            employeeInfo2["Time"] = employeeTime # or whatever you wanted in the field 
            employeeProfile.append(employeeInfo2)
这会将时间列添加到您的dict中,然后由csv_writer.writerow很好地编写

根据你的输出,我猜你是这样写的:

csv_writer.writerow(b) 
csv_writer.writerow(times)

《泰晤士报》是你为《泰晤士报》写的。这会导致偏移,因为writerow会在csv的每一行中添加一个换行符。

Hello@jason。不,那不是我的方法。所有逻辑都发生在``如果employeeInfo2不在employeeProfile:employeeProfile.append(employeeInfo2)``中``我没有加倍csv\U写入。无论如何,尝试了您的解决方案,但无效。您的代码没有指示时间字段写入csv的时间和地点。你能详细介绍一下吗?csv_writer.writerow()函数有很好的文档记录,因此就时间字段的行和其他行而言,不应该存在任何不匹配。您的附加正在附加到employeeProfile中的项目列表中。->[eployeeInfo2,{time:time}]迭代时,它作为第二次写入进行。Employeeprofile2的dict应该随着时间的推移而扩展,而不是添加到列表中。我做了一些修正,如果你希望逻辑在if条件之后,那么这些修正应该会起作用。你可以通过查看打印(b)输出来确认我的陈述。使用当前的解决方案,您将获得:{'Name':employeeName,'Date':employeeDate,'Status':employeeStatus}{'Time':employeeTime}@jariusjames有什么新闻吗?Hi@jason。我还是不能去上班。还在想别的办法。。。如果你有电子邮件,我可以给你发送我尝试过的文件和代码。
csv_writer.writerow(b) 
csv_writer.writerow(times)