【问题标题】:Python syntax error "cannot concatenate 'str' and 'NoneType' objects"Python 语法错误“无法连接 'str' 和 'NoneType' 对象”
【发布时间】:2016-05-12 22:02:12
【问题描述】:

我在网上找到了这个脚本: https://gist.github.com/gavsmi/dd31746e5847300b62da

知道为什么我会收到以下错误消息吗?它看起来像一个语法错误。我还是 Python 新手,所以请帮我指出问题所在以及如何解决它。

[root@ip-172-31-18-97 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

【问题讨论】:

  • 不是语法错误,是运行时错误。 tag_nameNone,不是字符串。
  • 为什么会发生错误,需要调试,但 Stack Overflow 不是调试服务。您确实需要自己做一些工作。例如,您需要告诉我们您的代码应该做什么、您期望发生什么以及您认为问题可能出在哪里。另请参阅 Are there legitimate "fix my code" questions? 和链接的 How to Debug Small Programs 博客文章。
  • 快速浏览回溯表明--tag-name 命令行开关不是可选的。因为没有指定标签名称,所以这里的代码中断了。

标签: python amazon-web-services boto


【解决方案1】:

运行脚本时,您可能没有提供“tag_name”命令行参数。在 argparse 模块中添加了默认为 None 的参数,因此“args.tag_name”(发生错误的范围内的“tag_name”)将为 None,除非您通过命令行为其指定值。如果不清楚,“无法连接 'str' 和 'NoneType' 对象”运行时错误是由尝试连接“'tag:' + tag_name”导致的,其中 'tag_name' 为 None。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多