在 python 中动态访问列表项

Accessing list item dynamically in python

我有一个列表(名为 Responses),其中包含一些具有以下键值对的字典:

Responses = [
    {'Id':100,'ResponseText1':'aaaa','ResponseText2':'yyyy'},
    {'Id':101,'ResponseText1':'bbbb','ResponseText2': 'zzzz'},
    {'Id':103,'ResponseText1':'cccc'},
    {'Id':104,'ResponseText2': True},
]

如您所见,Id 是所有 dictionary 的公共字段,但 ResponseText1ResponseText2 对某些 dictionary 不可用。

我想分离并检测所有数据以将它们推送到我的数据库中。我的 python 代码:

for j in Responses:
    print(j['Id'])
    if j['ResponseText1']:
        print(j['ResponseText1'])
    else:
        print("No ResponseText1 is present")
    if j['ResponseText2']:
        print(j['ResponseText2'])
    else:
         print("No ResponseText2 is present")

但它显示如下错误:

Traceback (most recent call last):
File "<string>", line 14, in <module>
KeyError: 'ResponseText2'

请建议我该如何解决这个问题?

使用in.get('key', default),而不是['key']访问以防止KeyErrors

两者的例子

for j in Responses:
    print(j['Id'])
    text1 = j.get('ResponseText1')
    if text1 is not None:
        print(text1)
    else:
        print("No ResponseText1 is present")

    if 'ResponseText2' in j:
        print(j['ResponseText2'])
    else:
         print("No ResponseText2 is present")