我正在开发一个python脚本来分析txt文件,然后将其保存到osv文件中。我正在尝试使用" zip_longest"来自模块" itertools"。当我的一个词典不再具有我的价值时,我希望它粘贴一个空格,而另一个词典继续粘贴其值。 我的代码如下所示:
def csvExport(self):
exportYN = input("Would you like to export the document to a CSV file? (Y/N):")
if (exportYN == "Y" or exportYN == "y"):
with open('data.csv', 'w', encoding="utf-8") as csvfile:
csvfile.write("Username;Repeated;Password;Repeated")
for (username, usrValue), (password, passValue) in itertools.zip_longest(self.usernames.items(), self.passwords.items()):
csvfile.write(str(username) + ";" + str(usrValue) + ";" + str(password) + ";" + str(passValue))
错误代码如下所示:
for (username, usrValue), (password, passValue) in itertools.zip_longest(self.usernames.items(), self.passwords.items()):
TypeError: 'NoneType' object is not iterable
我认为它与zip_longest有关,因为我使用的两个词典的长度不一样。
希望你能提供帮助:)
答案 0 :(得分:1)
您需要使用fillvalue
的{{1}}关键字参数:
zip_longest
否则默认值为ziplongest(..., ..., fillvalue=('', ''))
,而None
无法填充2元组,例如None
。
除此之外,由于字典未被排序,(username, usrValue)
操作将返回随机对...