【问题标题】:How to parse JSON file for a specific key and value?如何解析特定键和值的 JSON 文件?
【发布时间】:2017-03-29 17:24:59
【问题描述】:

目前,有多个 JSON 文件要解析。在每个文件中,我都会查找“ID”: “1”:

{“TYPE”: “fire”, “ID”: “1”, “COLOR”: “black”}

如果是,则复制并粘贴整个 JSON 内容(仅 1 行),然后将其粘贴到结果文件中。

在 Python 中,在 JSON 文件中查找特定键/值以复制到新文件的正确方法是什么?

【问题讨论】:

  • 查看JSON Docs - import jsonjson.loads(),然后使用json['ID'] 进行导航。
  • @dot.Py 你介意显示为答案,所以我也可以接受和投票

标签: python json parsing


【解决方案1】:

第 1 步:将 JSON 加载为 dict

import json
my_json_dict = json.loads(json_string)

json 库将您的 JSON 字符串解析为 Python 字典。

第 2 步:使用键访问值

value1 = my_json_dict['ID'] 
value1 = my_json_dict.get('ID', default_value) # Preferred.

如果 KEY1 在 JSON 字符串中不可用,第一个语句将引发异常。 第二个语句更安全,因为可以给出一个后备值。

第 3 步:应用您的业务逻辑

if id == 1:
    # do your operations.

如果您必须使用第一行,或者如果处理可能引发错误的未知数,请测试您遇到的错误并在其中添加异常处理,如下所示:

try:
   <your code solution here>
except NameOfError as ee:
   <what to do if error occurs>
   print(type(ee)); print(ee)    # if you want to see the error 

您可以添加尽可能多的 except 语句,因为您尝试处理的错误类型有多少。可以使用通用的“异常”代替 NameOfError 作为未知错误的包罗万象,但最佳实践是首先按类型处理真正的异常。在代码中断时进行一些小测试可以揭示应该用什么来代替“NameOfError”。

【讨论】:

  • 感谢您的回复,但您能否展示一份文件,例如文件1.json?例如,我将如何打开它,稍后如果它是 id == 1 然后将其复制并粘贴到例如结果.json。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 2022-01-21
  • 2018-07-12
相关资源
最近更新 更多