我正在编写一个游戏和一个排行榜。我有很高的分数,它存储在一个csv文件中,如果有人击败它,新的高分将覆盖旧的高分,但是我收到了一个我不明白的错误。ValueError:字典包含不在字段名称中的字段:'1'
这里是我的相关代码:
with open ("C:\\Users\\sophie\\Documents\\Sophie\\Homework\\Year 11\\Computer Science\\High_score.csv", 'w') as csvfile:
writecsv=csv.writer(csvfile)
writer.writerow(str(NumberOfGuesses))
这里是我的错误:
Traceback (most recent call last):
File "C:/Users/sophie/Documents/Sophie/Homework/Year 11/Computer
Science/Summer homework.py", line 124, in <module>
writer.writerow(str(NumberOfGuesses))
File "C:\Python34\lib\csv.py", line 153, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "C:\Python34\lib\csv.py", line 149, in _dict_to_list+ ", ".join([repr(x) for x in wrong_fields]))
ValueError: dict contains fields not in fieldnames: '1'
一开始我读csv文件和变量high_score设置在高分文件。
high_score =()
import csv
with open
("C:\\Users\\sophie\\Documents\\Sophie\\Homework\\Year11\\ComputerScience\\Highscore.csv") as csvfile:
readcsv=csv.reader(csvfile)
for row in readcsv:
high_score=(row)
然后,用户玩游戏,如果他们击败了高分,我希望它覆盖该文件夹中的高分,并用新的更换。
这是这里
if NumberOfGuesses <= (int_high_score):#This shows the high score changes value if that score is higher.
with open ("C:\\Users\\sophie\\Documents\\Sophie\\Homework\\Year 11\\Computer Science\\High_score.csv", 'w') as csvfile:
writecsv=csv.writer(csvfile)
writer.writerow(str(NumberOfGuesses))
'NumberOfGuesses'看起来像什么? –
NumberOfGuesses是一个变量,每当他们猜到一个数字时就会增加一个,这是错误的。这就像一个主谋游戏,然后如果他们击败最高分,它应该保存到一个CSV文件,但我得到这个奇怪的错误。 –
错误来自csv.DictWriter,它用于将字典写入csv。通过将字符串传递给默认的csv编写器不会抛出此错误。要重现这个错误,我不得不写: '开放的( 'test.csv', 'W')为f: W = csv.DictWriter(F,[ '东西']) w.writerow( {1:'s'}) ' –