python - Jsonlines 文件导致 KeyError Python
问题描述
我有一个我正在加载的 json 文件,以便通过某个名为“sender_id”的键进行过滤。我似乎可以过滤任何其他键,但是在过滤“sende_id”时会导致 KeyError: 'sender_id'
我的python脚本如下:
import json_lines
with open('specifications.jsonl', 'rb') as f:
for item in json_lines.reader(f):
print(item["sender_id"])
我的 jsonlines 文件示例如下:
{"status": "Inactive", "no_of_rejected_submissions": 0, "name":
"multi senders 6", "data_type": "acute", "author": "JKS",
"
解决方案
正如您所指出的,第一行没有 key sender_id
,因此当您尝试访问不存在的键时,该item
对象会吐出。KeyError
如果将第二行移到第一行,那么它至少会打印出item["sender_id"]
for the line (ie RAK
) 的结果,然后吐出KeyError
.
如果您想要的行为是“如果存在则打印,如果不存在则跳过”,那么您可以dict.get
,例如:
with open('specifications.jsonl', 'rb') as f:
for item in json_lines.reader(f):
print(item.get("sender_id"))
推荐阅读
- android - 在同一本地网络上从计算机向手机发出 POST 请求
- azure-ad-b2c - 不记名令牌在 AAD B2C .NETCorre 中不起作用
- flutter - 为什么我向下滚动时我的图像消失了?
- delphi - Indy 中 GStack.HostToNetwork 的目的是什么?
- linux - 如何在 Ubuntu 或 Pop OS 中通过右键单击添加“使用代码打开”?
- facebook - Facebook营销API开发模式
- c# - 使用 Xamarin Essential 选择联系人(并尝试返回)时应用程序崩溃
- git - 如何拆分 gitlab-ci.yml 以使在一个 GitLab 存储库中运行一些脚本成为可能
- bash - 使用 grep 计算出现的总数并输出找到的行
- amazon-web-services - 无服务器框架 AWS Codebuild 成功完成(?)但没有 APIGateway 或 lambda