python - 如何解决AttributeError : '_Environ' object has no attribute 'has_key'

标签 python eclipse web-services

def _is_dev_mode():
    # quick hack to check if the program is running in dev mode.
    # if 'has_key' in os.environ  
    if os.environ.has_key('SERVER_SOFTWARE') \
        or os.environ.has_key('PHP_FCGI_CHILDREN') \
        or 'fcgi' in sys.argv or 'fastcgi' in sys.argv \
        or 'mod_wsgi' in sys.argv:
           return False
    return True

在上面的代码中显示了以下错误

if os.environ.has_key('SERVER_SOFTWARE') \
AttributeError: '_Environ' object has no attribute 'has_key'

最佳答案

我假设您正在使用 Python 3。在 Python 2 中,字典有一个 has_key() 方法。在 Python 3 中,如异常所述,它不再存在。您需要使用 in 运算符:

if 'SERVER_SOFTWARE' in os.environ

这里有一个例子(py3k):

>>> import os
>>> if 'PROCESSOR_LEVEL' in os.environ: print(os.environ['PROCESSOR_LEVEL'])

6
>>> if os.environ.has_key('PROCESSOR_LEVEL'): print("fail")

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    if os.environ.has_key('PROCESSOR_LEVEL'): print("fail")
AttributeError: '_Environ' object has no attribute 'has_key'
>>> 

关于python - 如何解决AttributeError : '_Environ' object has no attribute 'has_key' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427352/

相关文章:

python - 解析字符句法图的思路

java - 是否可以限制 Java 注解的字段类型?

java -//$NON-NLS-后面的数字是什么意思

java - 该行的多个标记对我有帮助

android - 一种从mysql获取信息到Android应用程序的方法

Java继承接口(interface)中的注解

c# - 如何使用 WCF 服务生成 XML 输出?

python - pandas 数据框中基于现有列值的新列

python - OpenCV 错误 : bad argument, 重载解析失败,索引为 0 的序列项类型错误

python - 使用 pycurl 发布文件并传递参数