我正在制作一个与您交谈并学习如何回应短语的程序。字典响应包含程序的输入和输出,我使用csv在外部存储字典。当我尝试打开字典时,它会出现:ValueError:需要超过0个值才能解压缩 这是代码:
import csv
import sys
def end():
w = csv.writer(open("dictionary.csv", "w"))
for key, val in responses.items():
w.writerow([key, val])
def process(x):
x=x.lower()
if x in responses:
print(responses[x].capitalize())
elif x=="exit":
end()
sys.exit()
else:
add=input("Sorry, I don't know how to respond. What would be a good response?\n")
responses[x]=add
end()
responses = {}
n=csv.reader(open("dictionary.csv"))
for key, val in n:
responses[key] = val
while 1==1:
process(input("Question:\n"))
任何人都可以帮我解决错误或整个程序的原因吗?我试图在python上重新创建简单的机器学习。
任何帮助表示赞赏。 感谢。
Mitra0000
答案 0 :(得分:1)
针对不同策略的单独答案:
使用JSON保存自己的CSV麻烦。读取和写入dict到JSON文件非常简单:
import json
# reading an existing file
with open('dictionary.json') as f:
responses = json.load(f)
# writing/ overwriting a file
with open('dictionary.json', 'w') as f:
json.dump(responses, f, indent=2, sort_keys=True)
关键字参数不是必需的,但它们使它更具可读性。然后在文本编辑器中打开它。
答案 1 :(得分:0)
您的代码适合我。尝试调试它以找到错误发生的位置(可能是for key, val in n
行,但确定是好的)。你是如何初始化csv文件的?如果您在文本编辑器中,在python中或使用touch
手动创建新文件,它是否会改变行为?