类型错误';classobj';对象没有属性'__获取项目';用python

类型错误';classobj';对象没有属性'__获取项目';用python,python,Python,我只是python的初学者,不知道如何解决这个问题。请帮忙 错误: Traceback (most recent call last): File "C:\Users\Priscilla\Desktop\CMPT Assn #3\page.py", line 17, in <module> print "<p>Customer Name:", form["custName"].value, "</p>" TypeError: 'classobj'

我只是python的初学者,不知道如何解决这个问题。请帮忙

错误:

Traceback (most recent call last):
  File "C:\Users\Priscilla\Desktop\CMPT Assn #3\page.py", line 17, in <module>
    print "<p>Customer Name:", form["custName"].value, "</p>"
TypeError: 'classobj' object has no attribute '__getitem__'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Priscilla\Desktop\CMPT Assn#3\page.py”,第17行,在
打印“客户名称:”,表单[“客户名称”]。值“

” TypeError:“classobj”对象没有属性“\uuu getitem\uuu”
Python脚本:

import cgi
form = cgi.FieldStorage

# print HTTP/HTML header stuff
print """Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<title>Order Form</title>
</head><body>
"""

# print HTML body using form data
print "<h1>Kintoro Japanese Bar &amp; Restaurant</h1>"
print "<h2>Customer Reciept</h2>"
print "<p>Customer Name:", form["custName"].value, "</p>"
print "<p>Customer Email Address:", form["custEmail"].value, "</p>"
print "<h2>Customer Address:</h2>"
print "<p>Street:", form["custAdd"].value, "</p>"
print "<p>City:", form["custCity"].value, "</p>"
print "<p>Province:", form["custProv"].value, "</p>"
print "<p>Postal Code:", form["custPostal"].value, "</p>"
print "<h2>Payment Information:</h2>"
print "<p>Card Type:", form["type1"].value, "</p>"
print "<p>Card Number: XXXX-XXXX-XXXX-", form["four4"].value, "</p>"
print "<p>Expiry Date:", form["expDate"].value, "</p>"
导入cgi
form=cgi.FieldStorage
#打印HTTP/HTML头文件
打印“”内容类型:文本/html
订单
"""
#使用表单数据打印HTML正文
打印“金托罗日本酒吧和餐厅”
打印“客户接收”
打印“客户名称:”,表单[“客户名称”]。值“

” 打印“客户电子邮件地址:”,表格[“客户电子邮件”]。值“

” 打印“客户地址:” 打印“街道:”,表格[“客户添加”]。值“

” 打印“城市:”,表单[“客户城市]。值“

” 打印“省:”,表格[“custProv”]。值“

” 打印“邮政编码:”,表单[“邮政客户”]。值“

” 打印“付款信息:” 打印“卡片类型:”,表单[“类型1”]。值“

” 打印“卡号:XXXX-XXXX-XXXX-”,表格[“four4”]。值“

” 打印“到期日期:”,表格[“expDate”]。值“


在python中调用
[]
操作符将调用对象的
\uuu getitem\uuuu(key)
方法。在您的例子中,似乎没有为
form
是实例的类定义该方法

要解决这个问题,您需要在相关类中定义方法及其行为


有关更多信息,请参见。

表单=cgi。FieldStorage
将类
FieldStorage
本身分配给
表单。您想分配一个
FieldStorage
的实例:

form = cgi.FieldStorage()

您不需要实例化
字段存储

您的操作:
form=cgi.FieldStorage
。这使得
form
等于类
cgi.FieldStorage
。该类对您当前的请求一无所知


您的意思是:
form=cgi.FieldStorage()
。这将创建一个与当前请求关联的新实例。

而不是执行<代码>打印< /代码> s,考虑使用一个简单的模板引擎,例如通过 EasyJuthUng/<代码>或<代码> PIP。更好的是,考虑使用一个简单的Web框架,或者不访问原始存储。当出现新的错误时,不要改变你的问题。每个问题只解决一个问题。
FieldStorage
类由标准Python模块定义。文档表明订阅应该可以工作,并且。感谢您的回复。我确实忘记了括号,但在我把它放进去之后,出现了这个错误:文件“C:\Users\Priscilla\Desktop\CMPT Assn\3\page.py”,第17行,印刷版“客户名称:”,表单[“custName”].value,

“文件”C:\Python27\lib\cgi.py”,第540行,在getitem raise KeyError中,key KeyError:'custName'@user3895456:我认为这是因为您需要将脚本作为CGI脚本(即,在Web服务器上)运行,并向其中发布一个带有字段“custName”等的表单。在我将文件“C:\Users\Priscilla\Desktop\CMPT ASN#3\page.py”放入括号后出现了另一个错误:文件“C:\Users\Priscilla\Desktop\CMPT ASN#3\page.py”,第17行,打印“客户名称:”,表单[“custName”].value“

”文件“C:\Python27\lib\cgi.py”,第540行,在getitem raise KeyError中,key KeyError:“custName”
KeyError
表示表单['custName']不存在。尝试打印
form.keys()
(例如在日志中),查看实际传递的内容。