同样的错误一直在无休止地重复:(
代码:
def query():
query = input("Please insert your query here:\n")
with open("TroubleShootingKey.txt") as f:
dictq = dict(x.rstrip().split(None, 1)for x in f)
print(dictq)
found =False
for k, v in dictq.items():
if k in query:
found = True
print(v)
if not found:
print("sorry, we didn't get that")
query()
...
这是语法错误:
Traceback (most recent call last):
File "C:/Documents and Settings/Naoman/Desktop/Naoman's Work/Computer Science/CA Final week/CA.6.py", line 42, in <module>
query()
File "C:/Documents and Settings/Naoman/Desktop/Naoman's Work/Computer Science/CA Final week/CA.6.py", line 31, in query
dictq = dict(x.rstrip().split(None, 1)for x in f)
ValueError: dictionary update sequence element #10 has length 0; 2 is required
...
这是文件被打开(记事本):
转向充电
音量将其更改为声音/正常模式
相机移除阻挡镜头的材料
水让手机晾干过热让手机在凉爽的环境中降温
互联网这是因为您不在覆盖范围内,请尝试更改您的位置以捕获信号
wifi有两种方法可以解决这个问题,首先删除我的数据
存储好,你可以在凉爽的环境中降温
冻结取出电池并将其放回以重新启动手机
软件不幸的是,解决问题的唯一方法是重置手机
答案 0 :(得分:0)
这可能是因为你到达了文件的末尾。
您可以添加
try:
...
except ValueError:
...
阻止您的代码在这种情况下停止(使用break
)。
答案 1 :(得分:0)
split(None, 1)
将返回一个空列表,这可能是此错误的原因。您可以使用以下代码段重现错误:
dict(x.split(None, 1) for x in [''])
可能的解决方法是避免在空行上调用split()
dict(x.rstrip().split(None, 1) for x in f if x)