Python - 检查字典中是否存在列表项

标签 python list dictionary nested

我有一本字典,里面有一个列表,如下面的两个例子。

some_json = {'speaking_tone': [{'speaking_id': 0, 'spoken_text': 'register my device', 'tones': []}]}

some_json = {'speaking_tone': [{'speaking_id': 0, 'spoken_text': 'So kind of you to help with the issue', 'tones': [{'tone_name': 'Polite'}]}]}

我想检查“tones”中是否存在值,然后进行后续处理。如果没有,请继续下一步。我尝试了以下方法,它们总是导致索引超出范围错误。

if len(some_json["speaking_tone"][0]["tones"][0]["tone_name"]) > 0:

最佳答案

如果 some_json["speaking_tone"][0]["tones"] 是一个空列表会怎样?你会得到一个错误,因为你试图从一个空列表中访问某些东西 (["tone_name"])。为避免这种情况,首先检查 some_json["speaking_tone"][0]["tones"] 是否不为空。

some_json = {'speaking_tone': [{'speaking_id': 0, 'spoken_text': 'register my device', 'tones': []}]}

if len(some_json["speaking_tone"][0]["tones"]) == 0:
    print("Empty")
else:
    print("Something")


# Another way
if not some_json["speaking_tone"][0]["tones"]:
    print("Empty")
else:
    print("Something here")

关于Python - 检查字典中是否存在列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46991306/

相关文章:

c# - 字符串列表删除

c++ - 从 C++ 列表中删除对象

python - 如何检测字典中的任何元素是否发生变化?

python - 在 Python 的一行中进行多次拆分

python - mariadb 10.2 中的 EPF 导入器错误 - 编码?

python - 在 Python 中过滤 (Nx1) 列表

javascript - 将数组映射到数组的对象内

python - 每个项目存储可变数量的值

python - 在 python 中按半小时间隔对文件列表进行分组

python - 得到NER结果后如何获取索引?