2015-04-17 42 views
-2

我发现在互联网上这个脚本: https://gist.github.com/gavsmi/dd31746e5847300b62daPython语法错误“不能连接‘海峡’和‘NoneType’对象”

任何想法,为什么我收到以下错误消息?它看起来像一个语法错误。我仍然对Python很陌生,所以请帮助我指出问题所在以及如何解决它。

[[email protected] tmppython]# python snapshot.py 
INFO:root:Finding snapshot for tag... 
Traceback (most recent call last): 
    File "snapshot.py", line 164, in <module> 
    main() 
    File "snapshot.py", line 30, in main 
    snapshot = find_snapshot(args.tag_name, args.tag_value) 
    File "snapshot.py", line 47, in find_snapshot 
    snapshots = conn.get_all_snapshots(filters={'tag:' + tag_name: tag_value}) 
TypeError: cannot concatenate 'str' and 'NoneType' objects 
+0

这不是一个语法错误,它是一个运行时错误。 'tag_name'是'None',不是一个字符串。 –

+0

*为什么*发生错误,需要调试,但堆栈溢出不是调试服务。你需要自己做一些工作。例如,您需要告诉我们您的代码应该做什么,您希望发生什么以及您认为问题可能出在哪里。另请参阅[是否有合法的“修复我的代码”问题?](http://meta.stackoverflow.com/q/253787)和链接的[如何调试小程序](http://ericlippert.com/2014/ 03/05/how-to-debug-small-programs /)博客文章。 –

+0

快速浏览回溯表明'--tag-name'命令行开关不是可选的。代码打破了这里,因为没有指定标签名称。 –

回答

0

运行脚本时,您可能没有提供'tag_name'命令行参数。 argparse模块中默认添加了参数None,所以'args.tag_name'(发生错误的范围内的'tag_name')将是None,除非您通过命令行给它一个值。如果不明确,“无法连接'str'和'NoneType'对象'尝试连接的运行时错误结果''tag:'+ tag_name”,其中'tag_name'为None。

相关问题