当前位置: 首页 > 知识库问答 >
问题:

如何加载和解析JSON文件

屈昊天
2023-03-14

我得到了一个json文件,但我在解析它时遇到了麻烦。我想在json中搜索,并将所有标题为“filePath”的字段保存到Python中的列表中。

当我做的时候

import json
with open("C:/Users/Tom/Work/IP_Project/es_result.json") as f:
    result = json.load(f)
print(result["filepath"])

出现以下错误:typeerror:列表索引必须是整数或切片,而不是字符串

下面是我的json文件的内容

[{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/006/CMC_hrdps_continental_TMP_TGL_2_ps2.5km_2020080900_P006-00.grib2",
    "forecast_hour": "2020-08-09T06:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/006/CMC_hrdps_continental_WDIR_TGL_10_ps2.5km_2020080900_P006-00.grib2",
    "forecast_hour": "2020-08-09T06:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/006/CMC_hrdps_continental_WIND_TGL_10_ps2.5km_2020080900_P006-00.grib2",
    "forecast_hour": "2020-08-09T06:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/009/CMC_hrdps_continental_TMP_TGL_2_ps2.5km_2020080900_P009-00.grib2",
    "forecast_hour": "2020-08-09T09:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/009/CMC_hrdps_continental_WDIR_TGL_10_ps2.5km_2020080900_P009-00.grib2",
    "forecast_hour": "2020-08-09T09:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},
 
{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/009/CMC_hrdps_continental_WIND_TGL_10_ps2.5km_2020080900_P009-00.grib2",
    "forecast_hour": "2020-08-09T09:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/012/CMC_hrdps_continental_TMP_TGL_2_ps2.5km_2020080900_P012-00.grib2",
    "forecast_hour": "2020-08-09T12:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/012/CMC_hrdps_continental_WDIR_TGL_10_ps2.5km_2020080900_P012-00.grib2",
    "forecast_hour": "2020-08-09T12:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"},

{"filepath": "/data-san/geomet/dev/feeds/model_hrdps/continental/grib2/00/012/CMC_hrdps_continental_WIND_TGL_10_ps2.5km_2020080900_P012-00.grib2",
    "forecast_hour": "2020-08-09T12:00:00Z",
    "model_run": "2020-08-09T00:00:00Z"}]

共有3个答案

惠翰藻
2023-03-14

您正在使用的json文件的类型为list

您可以通过循环来获取文件路径。

for x in result:
   print(x['filepath'])
丰誉
2023-03-14

result是应使用循环的字典列表

for x in result:
    print(x['filepath'])
弘烨烁
2023-03-14

您的json文件是一个字典列表。

要打印文件路径,需要遍历以下列表的元素:

import json
with open("C:/Users/Tom/Work/IP_Project/es_result.json") as f:
    result = json.load(f)

for element in result:
    print(element["filepath"])
 类似资料:
  • 问题内容: SVG元素包含一个数据属性()。有时有必要仅从SVG文件加载,解析和提取路径信息。 题 如何从SVG文件加载,解析和提取SVG路径信息? 问题答案: 总览 使用ApacheBatik加载和解析SVG文件。该解决方案在将SVG文件转换为MetaPost的初期阶段显示了Java代码。这应该为如何使用Java从SVG文件中加载,解析和提取内容提供一个总体思路。 图书馆 您将需要以下库: 加载

  • 问题内容: 我正在尝试在Python中加载和解析JSON文件。但是我在尝试加载文件时遇到了困难: 产量: 我看着 18.2。— Python文档中的 JSON编码器和解码器 ,但是通读这个看起来糟透了的文档非常令人沮丧。 前几行(用随机条目匿名): 问题答案: 您有一个JSON Lines格式的文本文件。您需要逐行解析文件: 每 行都 包含有效的JSON,但总的来说,它不是有效的JSON值,因为没

  • 我正在尝试用Python加载和解析一个JSON文件。但我无法加载文件: 收益率:

  • 问题内容: 到目前为止,我的目标是在Rust中解析此JSON数据: 并且是 我下一步应该解析什么?我的主要目标是获取这样的JSON数据,并从其中解析密钥(例如Age)。 问题答案: Serde是首选的JSON序列化提供程序。您可以通过多种方式从文件中读取JSON文本。将其作为字符串使用后,请使用: Cargo.toml: 您甚至可以使用类似的方法直接从已打开的读取。 Serde可以用于JSON以外

  • 问题内容: 我正在尝试在Python中加载和解析JSON文件。但是我在尝试加载文件时遇到了困难: 产量: 我看着18.2。文档中的JSON编码器和解码器,但是通读这个看起来糟透了的文档非常令人沮丧。 前几行(用随机条目匿名): 问题答案: 你有一个JSON Lines格式的文本文件。你需要逐行解析文件: 每行都包含有效的JSON,但总体而言,它不是有效的JSON值,因为没有顶级列表或对象定义。 请

  • > 在Eclipse中新建EMF项目 导入xmi架构:xmi.xsd,并获取xmi.genmodel文件 使用xmi.genmodel生成eclipse中的所有代码,它将生成模型代码 新建一个Junit4测试用例,并尝试用Junit插件测试加载xmi-model.xmi文件,但失败了,下面是我的代码。 例外情况是: 好的,然后我试着去读xsd文件和xmi文件,我发现在xmi-model.xmi里面

  • 问题内容: 我有一个JSON文件,想解析和使用表视图中的对象列表。任何人都可以共享代码以快速解析JSON文件。 问题答案: 再简单不过了: 话虽如此,我强烈建议您使用 Swift 4中引入的Codable API 。

  • 我有一个非常简单的产品评论JSON,比如: 我想用GSON把它读到我的Java应用程序中。我构建了一个类来保存每次复习的结果: 使用这段代码,我只能检索JSON中的第一个评论,所以我的问题是:如何遍历所有阅读器并获得下一个评论?我不需要将评论存储在列表中,只需要访问对象一次。任何帮助都大于欢迎。