python 我得到一个关键错误如何摆脱这一点

k4emjkb1  于 2023-03-28  发布在  Python
关注(0)|答案(2)|浏览(143)

我是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'
z4iuyo4d

z4iuyo4d1#

你要做的是检查“如果键存在”,所以无论你在表单中提交键,或者提交一个表单,代码都不会失败。
在较旧的Python版本中,您可以使用has_key来执行此操作,但在较新的Python版本中,您可以使用in
由于cgi.FieldStorage()返回的数据只是一个字典(在其他语言中通常称为数组),因此可以这样做:

form_data = cgi.FieldStorage()
if 'your_key' in form_data:
    # do your things here

在以前的Python中,你会这样做:

form_data = cgi.FieldStorage()
if dictionary.has_key('keyname'):
    # do your things here

阅读有关https://portingguide.readthedocs.io/en/latest/dicts.html的更多信息
希望这对你有帮助,祝你在Python上好运!

s1ag04yj

s1ag04yj2#

下面的代码的输出是

FieldStorage(None, None, [])

这里没有名为Which_Athlete的键。因此这会给你一个错误

相关问题