我试图找到一条推文的发送位置,有些人显然在他们的微博上没有位置设置,所以我想知道如何绕过“TypeError:'NoneType'object is not iterable”并在其位置显示“not identified”答案?在
我使用isL`import json的代码
with open('tweets7.txt')as json_data:
data = json.load(json_data)
for r in data['results']:
for b in r['place']:
print (r['place']['full_name'])
break
print r['text']
`
在这种情况下,您可以使用try/catch:)
如果您不能依赖输入来遵循预期的格式,那么获得一个警告或至少比
KeyError
或NoneType is not iterable
更不迟钝的错误消息可能会有用。在如果您不习惯于编写健壮的代码,那么在一开始可能的每一个机会都提出一个错误,这可能看起来很奇怪。这里的关键一课是提供有用的错误报告,指出哪些错误是错误的。您应该很快就会发现这显著地提高了代码的可用性和可维护性;而不是一个奇怪的
NoneType
回溯,而不是一个奇怪的NoneType
回溯,它可能会远离实际的问题发生的地方,而是立即得到一个错误,它准确地显示了什么时候某些东西不是您所期望的。在如果您认为您能够处理调用代码中的某些错误,请注意在每种情况下
raise
不同的错误,以便您能够确切地决定要实现的except
处理程序。(然后可能会定义自己的错误层次结构,而不是像我在这里那样使用Python的泛型ValueError
)如果要检查iterable对象是否存在,可以使用:
如果您只想遍历数据['results'],可以使用:
^{pr2}$相关问题 更多 >
编程相关推荐