我的功能" getint"返回以下值:
回复:0 id:70402 类型:1 有价值 int值:15
我已将上述值存储在String中,并在代码下面写入以打印' int值'数据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'
答案 0 :(得分:1)
您的代码存在一些问题。试试下面的内容。
Activity
<强>解释强>
for i in s.split('\n'):
key, val = i.split(":")
d[key.strip()] = val.strip()
try:
print(d['int value'])
except KeyError:
print("no 'int value' found in", d)
来捕捉关键错误。KeyError
/ try
。答案 1 :(得分:1)
您的错误,因为当您浏览E Failed: DID NOT RAISE <class 'FileNotFoundError'>
时。你的第一个s tring
但是i: response = 0
当时没有的print d['int value']
。这将有效:
d
如果您想使用密钥获取错误。你应该添加:
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()
except ValueError:
print "no key:value pair found in", i
print d['int value']
或者只需将except KeyError:
print "key error found in", i
更改为ValueError
答案 2 :(得分:1)
将print d['int value']
写成一边进行循环
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()
except ValueError:
print "no key:value pair found in", i
print d['int value']