Python脚本中发生错误

1 投票
2 回答
1672 浏览
提问于 2025-04-17 21:45

我在用Apache服务器实现一个CGI的Python脚本。

我有下面这个函数:

def check(form=None, key=''):
    if form == None:
        return -1
    value = form.has_key(key)
    if value == False:
        return -1
    return 0

这是我的头部信息:

"Content-Type: text/plain; charset=UTF-8"

但是当我运行这个脚本,并且没有给表单传任何数据时,出现了下面的错误。

在Python脚本中发生了一个问题。下面是导致错误的函数调用顺序,按发生的顺序排列。

这行代码value = form.has_key(key)被标记为错误。

这是错误追踪信息,我看到fieldStorage没有创建一个字典来存储键:

/usr/lib/python2.7/cgi.py in has_key(self=FieldStorage(None, None, 'keyA=valA&keyB=valB&keyC=calC\x00\x00'), key='keyA')
587         """Dictionary style has_key() method."""
588         if self.list is None:
=>589             raise TypeError, "not indexable"
590         return any(item.name == key for item in self.list)
591  builtin TypeError = <type 'exceptions.TypeError'>

: 不可索引 args = ('不可索引',) message = '不可索引'

我该如何解决这个问题呢?谢谢。

2 个回答

0

我不太确定你是怎么执行这个 check() 方法的,但我自己测试过,运行得很好。

#! /usr/bin/python
def check(form=None, key=''):
    if form == None:
        return -1
    value = form.has_key(key)
    if value == False:
       return -1
    return 0

def index():
    return check()

输出结果是: -1

0
def check(form=None, key=''):
    if form == None:
        return -1
    value = form.has_key(key)
    if value == False:
        return -1
    return 0

if "__main__" == __name__:
    check()

上面的代码不会报错。

撰写回答