如何从嵌套数据结构(例如解析 JSON)中提取单个值?

2024-01-12

我编写了一些代码来从 Web API 获取数据。我能够从 API 解析 JSON 数据,但得到的结果看起来相当复杂。这是一个例子:

>>> my_json
{'name': 'ns1:timeSeriesResponseType', 'declaredType': 'org.cuahsi.waterml.TimeSeriesResponseType', 'scope': 'javax.xml.bind.JAXBElement$GlobalScope', 'value': {'queryInfo': {'creationTime': 1349724919000, 'queryURL': 'http://waterservices.usgs.gov/nwis/iv/', 'criteria': {'locationParam': '[ALL:103232434]', 'variableParam': '[00060, 00065]'}, 'note': [{'value': '[ALL:103232434]', 'title': 'filter:sites'}, {'value': '[mode=LATEST, modifiedSince=null]', 'title': 'filter:timeRange'}, {'value': 'sdas01', 'title': 'server'}]}}, 'nil': False, 'globalScope': True, 'typeSubstituted': False}

通过查看这些数据,我可以看到我想要的具体数据:1349724919000标记为的值'creationTime'.

如何编写直接获取该值的代码?

我不需要任何搜索逻辑来找到这个值。当我查看回复时,我可以看到我需要什么;我只需要知道如何将其转换为特定的代码以以硬编码的方式提取特定的值。我读了一些教程,所以我明白我需要使用[]访问嵌套列表和字典的元素;但我无法确切地弄清楚它如何适用于复杂的情况。

更一般地说,我如何找出数据的“路径”,并为其编写代码?


作为参考,让我们看看原始 JSON 是什么样子的,具有漂亮的格式:

>>> print(json.dumps(my_json, indent=4))
{
    "name": "ns1:timeSeriesResponseType",
    "declaredType": "org.cuahsi.waterml.TimeSeriesResponseType",
    "scope": "javax.xml.bind.JAXBElement$GlobalScope",
    "value": {
        "queryInfo": {
            "creationTime": 1349724919000,
            "queryURL": "http://waterservices.usgs.gov/nwis/iv/",
            "criteria": {
                "locationParam": "[ALL:103232434]",
                "variableParam": "[00060, 00065]"
            },
            "note": [
                {
                    "value": "[ALL:103232434]",
                    "title": "filter:sites"
                },
                {
                    "value": "[mode=LATEST, modifiedSince=null]",
                    "title": "filter:timeRange"
                },
                {
                    "value": "sdas01",
                    "title": "server"
                }
            ]
        }
    },
    "nil": false,
    "globalScope": true,
    "typeSubstituted": false
}

这让我们可以更清楚地看到数据的结构。

具体情况,首先我们要查看下对应的值'value'键入我们解析的数据。那是另一个命令;我们可以访问它的值'queryInfo'以同样的方式键入,并且类似地'creationTime'从那里。

为了获得所需的值,我们只需将这些访问依次进行:

my_json['value']['queryInfo']['creationTime'] # 1349724919000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从嵌套数据结构(例如解析 JSON)中提取单个值? 的相关文章

  • Python 中的六边形自组织映射

    我在寻找六边形 自组织映射 http en wikipedia org wiki Self organizing map在Python上 准备好模块 如果存在的话 绘制六边形单元格的方法 将六边形单元作为数组或其他方式使用的算法 About
  • Python3 查找 2 个列表中有多少个差异才能相等

    假设我们有 2 个列表 always具有相同的长度和always包含字符串 list1 sot sot ts gg gg gg list2 gg gg gg gg gg sot 我们需要找到 其中有多少项list2应该改变 以便它等于lis
  • 将一个时间序列插入到 pandas 中的另一个时间序列中

    我有一组定期测量的值 说 import pandas as pd import numpy as np rng pd date range 2013 01 01 periods 12 freq H data pd Series np ran
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • Python While 循环,and (&) 运算符不起作用

    我正在努力寻找最大公因数 我写了一个糟糕的 运算密集型 算法 它将较低的值减一 使用 检查它是否均匀地划分了分子和分母 如果是 则退出程序 但是 我的 while 循环没有使用 and 运算符 因此一旦分子可整除 它就会停止 即使它不是正确
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • 无法从 JQuery ajax 调用接收 JSON

    我已经确定来自服务器的 JSON 是有效的 手动进行 ajax 调用 但我真的很想使用 JQuery 我还使用 firebug 确定发送到服务器的 post URL 是正确的 但是 错误回调仍然被触发 解析错误 我还尝试了数据类型 文本 我
  • 在 pip.conf 中指定多个可信主机

    这是我尝试在我的中设置的 etc pip conf global trusted host pypi org files pythonhosted org 但是 它无法正常工作 参考 https pip pypa io en stable
  • 如何在 IntelliJ IDEA 中按 JSON 中的路径搜索?

    我有很长的 JSON 文件 例如 a b c keyC 和路径 a b c 如何使用路径在 JSON 中搜索 转到行 问题类似于如何在 IntelliJ IDEA 中复制 JSON 中的路径 https stackoverflow com
  • 使用 lambda 函数更改属性值

    我可以使用 lambda 函数循环遍历类对象列表并更改属性值 对于所有对象或满足特定条件的对象 吗 class Student object def init self name age self name name self age ag
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • 如何在单独的文件中使用 FastAPI Depends 作为端点/路由?

    我在单独的文件中定义了一个 Websocket 端点 例如 from starlette endpoints import WebSocketEndpoint from connection service import Connectio
  • Google App Engine 中的自定义身份验证

    有谁知道或知道我可以在哪里学习如何使用 Python 和 Google App Engine 创建自定义身份验证流程 我不想使用 Google 帐户进行身份验证 并且希望能够创建自己的用户 如果不是专门针对 Google App Engin
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙

随机推荐

  • 来自守护进程的错误响应:获取 https://registry-1.docker.io/v2/:拨打 tcp:查找registry-1.docker.io...i/o 超时

    我试图从 docker io 中提取图像 但收到此错误 最近我更改了 DNS 我不确定这就是原因 我执行了minikube ssh我执行了docker pull然后我得到了这个错误 Error response from daemon Ge
  • OpenLayers:如何计算两点之间的距离?

    如何使用墨卡托投影计算 OpenLayers 中两点之间的距离 Thanks use point1 distanceTo point2 var Geographic new OpenLayers Projection EPSG 4326 v
  • 将 INT 转换为 DATETIME (SQL)

    我正在尝试将日期转换为日期时间 但出现错误 我要转换的数据类型是 float null 我想将其转换为 DATETIME 该代码的第一行工作正常 但我在第二行收到此错误 将表达式转换为数据类型日期时间时出现算术溢出错误 CAST CAST
  • 是否可以在 Windows 上构建 ffmpeg x64?

    真正的答案可能是 不 但仍然需要仔细检查 有没有人能够在 Windows VS2013 或 VS2015 上构建 ffmpeg x64 我知道 如果不进行大量修改 公开可用的资源是不可能的 然而 如果有人做到了并且他愿意分享一些技巧 编辑
  • 使用 Flutter Firestore 插件,为文档中的每个子集合执行一些操作

    为了帮助我更好地了解 Flutter 和 Firebase 我正在制作一个列表共享应用程序 我正在处理列表主屏幕 该屏幕将显示可重新排序的列表图块视图 其中每个用户列表都有一个图块 我还没有开始研究这些列表内部的内容 我已经设置了 fire
  • 在 Ruby 中比较序列

    假设我必须 中小型 数组 tokens aaa ccc xxx bbb ccc yyy zzz template aaa bbb ccc 我怎样才能确定是否tokens包含所有条目template 按照同样的顺序 请注意 在上面的示例中 应
  • 无法多次重写 jQuery UI 自动完成 renderItem 方法

    它会在找到的第一个自动完成中正确覆盖 但对其余部分不执行任何操作 相反 它加载原始的 renderitem 方法 您可以在以下位置看到https github com jquery jquery ui blob master ui jque
  • 检查 Azure 资源组是否存在 - Azure Powershell

    我试图验证 ResourceGroup 是否存在 所以我认为以下代码应该返回 true 或 false 但它不输出任何内容 RSGtest Find AzureRmResource Format List ResourceGroupName
  • Rails 的 concat 方法和 do...end 块不起作用

    我刚刚读到 Rails 的concat清理在这里输出内容的助手的方法http thepugautomatic com 2013 06 helpers http thepugautomatic com 2013 06 helpers 我尝试了
  • 根据多个架构定义验证 XML 文件

    我正在尝试根据许多不同的模式验证 XML 文件 对人为的示例表示歉意 a xsd b xsd c xsd c xsd 特别是导入 b xsd 和 b xsd 导入 a xsd 使用
  • SQLiteDatabase close() 函数在多线程时导致 NullPointerException

    我在我的项目中发现 Android 上的 SQLiteDatabase 实现中的 close 函数在运行打开数据库 插入数据然后关闭数据库的多个线程时会引发 NullPointerException 一切都运行顺利 除非我允许每个线程在插入
  • 如何在 VBA (Excel 2010) 中将默认情况恢复为变量?

    在某些时候我不小心命名了一个变量range 全部小写 从那时起 Visual Basic for Applications 编辑器拒绝使用Range 帕斯卡大小写 它会自动将其更正为小写 我怎样才能重置它的 大脑 以忘记我过去的违规行为 注
  • ICS 文件内的超链接问题

    我创建了一个 ICS 文件 它有一个文本的超链接 在 Outlook 2013 中 它运行良好 但在其他电子邮件客户端中 它会向我显示完整的 URL 以及超链接文本 请参阅下面的屏幕截图 MAC OS 笔记本电脑 http img en25
  • 段落中每个单词的第一个字母的样式

    我正在尝试使用样式设置段落的第一个字母CSS并想使用 greensock 添加一些动画 但实际上要求是设置每个单词的第一个字母的样式 而不仅仅是第一个字母段落 对此有何建议 想法 p font size 150 color 000000 p
  • 根据url隐藏div

    抱歉 如果这是另一个转发 我一直在尝试寻找解决方案 但我尝试过的任何方法都不起作用 我正在使用一个我可以完全控制 html 的博客 我通常可以找到基本 html 的方法 但当涉及到 Java 或 CSS 时 我完全是个新手 抱歉 我什么都不
  • 获取程序图标

    我正在制作一个类似资源管理器的应用程序来浏览存储在我的计算机上的文件 我的应用程序将处于 图标 视图中 问题是 如何显示exe文件的图标 有几种方法可以做到这一点 最简单的可能是添加对System Drawing并利用Icon Extrac
  • 找不到 unicode 右箭头

    Unicode 中有这些箭头 但它缺少一个正确的 名字应该是这样的RIGHTWARDS BLACK ARROW 但没有该名称的 Unicode 字符 有一些字符看起来很相似 但我找不到合适的匹配项 我正在寻找该集合的右指向字符 基于字符名称
  • 使用 pip 安装 lxml 失败

    我正在尝试使用 pip 安装 lxml 我有 Windows 11 和 Python 版本 python 3 10 2 amd64 我也在使用 Visual Studio Code VSC 我意识到我需要 lxml 从我的 VSC 终端中的
  • 正则表达式/lastIndex - 意外行为

    我知道有一些正则表达式 lastIndex差异 但这对我来说是新的 预期行为 创建一个新的正则表达式 带有文字 构造函数 显然会创建一个带有lastIndex属性设置为零 实际行为 在 FF Chrome 中 lastIndex 属性似乎在
  • 如何从嵌套数据结构(例如解析 JSON)中提取单个值?

    我编写了一些代码来从 Web API 获取数据 我能够从 API 解析 JSON 数据 但得到的结果看起来相当复杂 这是一个例子 gt gt gt my json name ns1 timeSeriesResponseType declar