python - Python 迭代排除类型不是 bool、float、int 或非 NoneType (TypeError: 'NoneType' object is not iterable)
问题描述
我正在尝试迭代 JSON 文件及其元素。问题是,如果第一次迭代(元素)的值是 bool/float/int 或 NoneType 类型,则会引发错误消息。
这是我的尝试(它适用于 bool、float 和 int 但抛出 TypeError: 'NoneType' object is not iterable):
for element in json:
if type(element) != bool \
and type(element) != float \
and type(element) != int \
and type(element) is not None:
for value in json[element]:
print(value)
还有一种方法可以缩短 Python 中的代码吗?
解决方案
在 Python 中,只做它并处理任何异常是很常见的。
for element in json:
try:
for value in element:
print(value)
except TypeError:
pass
另外,您确定要迭代json[element]
还是只element
在内部 for 循环中进行迭代?
推荐阅读
- angular - 角材料插入垫提示自定义formcontrol
- windows - 为什么我的电脑更喜欢偶数核心?
- c++ - C++ Eigen Vector 在类的编译时推断向量大小
- javascript - Lighthouse 报告卸载侦听器错误
- javascript - 从数组中更改随机选择
- php - 如何在 PHP 中回显选择的选项的标签或名称而不提交?
- url - 在 URL 中显示 Punycode 而不是 Unicode
- angular - 安装 ng add @ng-bootstrap/ng-bootstrap 时出错
- flutter - 我只能通过 Flutter Blue 向 Arduino 33 BLE 发送 4 个字节
- vb.net - 我的用户控件列表视图从 msaccess 填充数据的问题