我有一个名为" list"的列表。它包含两个词典。我正在以dict [count],dict [count + 1]来访问这些词典。
现在我必须检查一个键是否为版本。然后我把代码编写为
filename = "output.txt"
fo = open(filename, "a")
for key1,key2 in zip(dict[count].keys(),dict[count+1].keys()):
if key1 == 'version':
# print "value of version:", (dict[count])[key]
fo.write("value of version:",(dict[count])[key])
if key2 == 'version':
# print "value of version:", (dict[count+1])[key]
fo.write ("value of version:", (dict[count+1])[key2])
这里我可以打印版本的值,但我无法写入文件。
错误:TypeError:函数只需1个参数(给定2个)
答案 0 :(得分:3)
fo.write()函数必须只有一个参数。你提供了两个参数,所以它不起作用。请参阅下面的行并使用它。
fo.write("value of version:%s"%(dict[count])[key])
fo.write ("value of version:%s"%(dict[count+1])[key2])
答案 1 :(得分:1)
你不能像file.write()
那样print()
传递多个对象以逗号分隔打印(作为元组),这就是你得到错误的原因。您应该使用string.format()
正确格式化字符串。
示例 -
filename = "output.txt"
fo = open(filename, "a")
for key1,key2 in zip(dict[count].keys(),dict[count+1].keys()):
if key1 == 'version':
# print "value of version:", (dict[count])[key]
fo.write("value of version:{}".format(dict[count][key1]))
if key2 == 'version':
# print "value of version:", (dict[count+1])[key]
fo.write ("value of version:()".format(dict[count+1][key2]))
另外,不确定为什么你需要做拉链和所有,你可以简单地做 -
filename = "output.txt"
fo = open(filename, "a")
if 'version' in dict[count]:
fo.write("value of version:{}".format(dict[count]['version']))
if 'version' in dict[count+1]:
fo.write("value of version:{}".format(dict[count+1]['version']))