我是python编程的新手,我在阅读the headfirst python book。我写了正确的代码,但它不起作用,为什么?
import cgi
form_data = cgi.FieldStorage()
下面这行给出了一个错误:
athlete_name = form_data['Which_Athelete']
错误是:
Traceback (most recent call last):
File "C:/Users/Hamza Shah/Desktop/Headfirst Python/chapter7/webapp/cgi-bin/generate_timing_data.py", line 7, in <module>
athlete_name = form_data['Which_Athelete']
File "C:\Users\Hamza Shah\AppData\Local\Programs\Python\Python37-32\lib\cgi.py", line 534, in __getitem__
raise KeyError(key)
KeyError: 'Which_Athelete'
2条答案
按热度按时间z4iuyo4d1#
你要做的是检查“如果键存在”,所以无论你在表单中提交键,或者提交一个表单,代码都不会失败。
在较旧的Python版本中,您可以使用
has_key
来执行此操作,但在较新的Python版本中,您可以使用in
。由于
cgi.FieldStorage()
返回的数据只是一个字典(在其他语言中通常称为数组),因此可以这样做:在以前的Python中,你会这样做:
阅读有关https://portingguide.readthedocs.io/en/latest/dicts.html的更多信息
希望这对你有帮助,祝你在Python上好运!
s1ag04yj2#
下面的代码的输出是
这里没有名为Which_Athlete的键。因此这会给你一个错误