我的函数“getint”返回以下值:
响应:0 编号:70402 类型:1 有价值的 int值:15
我已经将上面的值存储在字符串s中,并在下面的代码中打印'int value'数据15。在
代码:
s= '''response: 0
id: 70402
type: 1
has value
int value: 15
'''
s=s.replace("has","has:")
s = s.strip()
print s
d = {}
for i in s.split('\n'):
try:
key, val = i.split(":")
d[key.strip()] = val.strip()
print d['int value']
except ValueError:
print "no key:value pair found in", i
在输出中获取KeyError:'int value'
。在
输出:
response: 0 id: 70402 type: 1 has: value int value: 15 Traceback (most recent call last): File "/home/tests/test_lang.py", line 18, in <module> print d['int value'] KeyError: 'int value'
您的错误是因为当您通过}当时没有。这将起作用:
s tring
时。你的第一个i: response = 0
但你print d['int value']
,而{如果你想得到钥匙的错误。您应该添加:
^{pr2}$或者将
ValueError
改为KeyError
你的代码有一些问题。试试下面的方法。在
说明
KeyError
捕获密钥错误。在try
/except
。在在for循环外写入
print d['int value']
相关问题 更多 >
编程相关推荐