具有多个记录路径的 json_normalize

2023-11-22

我正在使用中给出的示例json_normalize此处给出的文档pandas.json_normalize — pandas 1.0.3 文档,不幸的是,我无法粘贴我的实际 JSON,但这个示例有效。从文档粘贴:

data = [{'state': 'Florida',
     'shortname': 'FL',
     'info': {'governor': 'Rick Scott'},
     'counties': [{'name': 'Dade', 'population': 12345},
                  {'name': 'Broward', 'population': 40000},
                  {'name': 'Palm Beach', 'population': 60000}]},
    {'state': 'Ohio',
     'shortname': 'OH',
     'info': {'governor': 'John Kasich'},
     'counties': [{'name': 'Summit', 'population': 1234},
                  {'name': 'Cuyahoga', 'population': 1337}]}]
result = json_normalize(data, 'counties', ['state', 'shortname',
                                           ['info', 'governor']])
result


         name  population    state shortname info.governor
0        Dade       12345   Florida    FL    Rick Scott
1     Broward       40000   Florida    FL    Rick Scott
2  Palm Beach       60000   Florida    FL    Rick Scott
3      Summit        1234   Ohio       OH    John Kasich
4    Cuyahoga        1337   Ohio       OH    John Kasich

如果 JSON 是下面的 JSON 呢?info是一个数组而不是一个字典:

data = [{'state': 'Florida',
     'shortname': 'FL',
     'info': [{'governor': 'Rick Scott'}, 
              {'governor': 'Rick Scott 2'}],
     'counties': [{'name': 'Dade', 'population': 12345},
                  {'name': 'Broward', 'population': 40000},
                  {'name': 'Palm Beach', 'population': 60000}]},
    {'state': 'Ohio',
     'shortname': 'OH',
     'info': [{'governor': 'John Kasich'}, 
              {'governor': 'John Kasich 2'}],
     'counties': [{'name': 'Summit', 'population': 1234},
                  {'name': 'Cuyahoga', 'population': 1337}]}]

您如何使用以下输出获得json_normalize:

         name  population    state shortname info.governor
0        Dade       12345   Florida    FL    Rick Scott
1        Dade       12345   Florida    FL    Rick Scott 2
2     Broward       40000   Florida    FL    Rick Scott
3     Broward       40000   Florida    FL    Rick Scott 2
4  Palm Beach       60000   Florida    FL    Rick Scott
5  Palm Beach       60000   Florida    FL    Rick Scott 2
6      Summit        1234   Ohio       OH    John Kasich
7      Summit        1234   Ohio       OH    John Kasich 2    
8    Cuyahoga        1337   Ohio       OH    John Kasich
9    Cuyahoga        1337   Ohio       OH    John Kasich 2

或者如果有其他方法可以做到这一点,请告诉我。


json_normalize设计的目的是为了方便而不是灵活性。它无法处理所有形式的 JSON(而且 JSON 太灵活,无法为其编写通用解析器)。

打电话怎么样json_normalize两次然后合并。这假设每个状态仅在 JSON 中出现一次:

counties = json_normalize(data, 'counties', ['state', 'shortname'])
governors = json_normalize(data, 'info', ['state'])

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

具有多个记录路径的 json_normalize 的相关文章

随机推荐

  • CookieSyncManager::createInstance() 需要在 CookieSyncManager::getInstance() 之前调用

    这个错误信息非常清楚 CookieSyncManager createInstance 需要之前调用 CookieSyncManager getInstance 但我只收到此错误 因为我遵循了官方文档 要使用 CookieSyncManag
  • Python 警告:重试(重试(总计=4,连接=无,读取=无,重定向=无,状态=无))

    我正在尝试做pip install upgrade pip并保留收到此错误 WARNING Retrying Retry total 4 connect None read None redirect None status None af
  • 相同元素的 jQuery 对象不相等?

    这一定是我忽略的事情 但是请查看下面的页面和 JavaScript 并告诉我为什么对于神圣的一切 jQuery 不会返回 true HTML http alcatel scottbuckingham com reporting test h
  • Spring @RequestParam 参数未在 POST 方法中传递

    我在 Spring 和发布请求方面遇到问题 我正在为 Ajax 调用设置一个控制器方法 请参阅下面的方法定义 RequestMapping value add page method RequestMethod POST ResponseB
  • 如何使用Python在OpenCV中合成两个图像?

    我有一张图像保持不变 另一张图像是第一张图像 但应用了滤镜 我想创建第三个图像 它应该是前两个图像的合成 我知道在MATLAB中有一个函数叫做asimfuse 使用默认颜色通道绿色 洋红色 我想在 Python 中做同样的事情 使用完全相同
  • 如何从 Symfony2 服务类发送电子邮件?

    我可以成功使用以下代码从控制器发送电子邮件 message Swift Message newInstance gt setSubject Hello Email gt setFrom email protected gt setTo em
  • 我可以同时写入不同的切片元素吗

    我有一个包含要完成的工作的切片 还有一个包含完成所有操作后的结果的切片 下面是我的大致流程的一个草图 var results make Result len jobs wg sync WaitGroup for i job range jo
  • javascript中的延迟/睡眠?

    有没有一种简单的方法可以在 Javascript 中暂停脚本 我正在寻找相当于的javascripttime sleep 1 在Python中 我不想setTimeout continueExecution 10 或任何与getTime 这
  • 如何在SQL语句中使用ASP变量

    postit是变量 这response write有效 这一切都在下面的 SQL 语句之上 这是 SQL 但是当我添加postit变量我收到此错误消息 delCmd CommandText DELETE FROM post WHERE po
  • Material-ui 中断点属性(xs、sm、md...)的布尔值的用途是什么

    我正在努力寻找文档 或通过代码实验得到的结果 将布尔值作为 Material ui 中网格组件的断点道具值的目的是什么 咨询网格 API 文档显示布尔值是断点属性 lg md sm xl xs 的有效值 我明白如果我说sm 3 一旦显示宽度
  • Postgresql:在不同客户端中查询速度慢 10 倍

    查看 postgres 服务器日志 我发现从 Linux 客户端或 Windows 客户端调用时 同一 postgres 服务器上完全相同的查询需要更长的时间 大约长 10 倍 这些查询来自在具有 4GB RAM 的 Linux 计算机和具
  • Haskell 解析器到 AST 数据类型、赋值

    我已经在互联网上搜索了几天 试图找到我的问题的答案 但我最终承认失败 我得到了语法 Dig 0 1 2 3 4 5 6 7 8 9 Int Dig Dig Int Var a b z A B C Z Expr Int Expr Expr E
  • 如何将 URL 添加到 Internet Explorer 中的受信任区域?

    如何将 URL 添加到受信任的站点 好像是存储在注册表里的 但是具体在哪里呢 到目前为止我用谷歌搜索的提示没有帮助 net 程序将在每个客户端上本地运行 编辑说明 我想以编程方式运行 C 代码来执行此操作 以下应该为您提供在代码中执行此操作
  • 将参数传递给自定义 save() 方法

    如何将参数传递给我的自定义保存方法 保留正确的 args kwargs传递给 super 方法 我正在尝试类似的事情 form save my value and def save self my value None args kwarg
  • 如何在日期字段中仅插入年份和月份?

    我有一个专栏叫table date目前我正在使用now 插入当前日期 2011 02 23 我知道我可以用 sql php 操作它来显示年份和月份名称 但是 我想知道是否可以直接插入table date当前日期为年月 如下所示2011 02
  • Java继承-调用超类方法

    假设我有以下两个课程 public class alpha public alpha some logic public void alphaMethod1 some logic public class beta extends alph
  • 如何使用 oracle 创建一个带有小字符的表?

    如何使用 oracle 创建一个带有小字符的表 当我创建带有小字符的表时 它会自动将其转换为大写字符 ANSI SQL 标准要求将 不带引号的 表名折叠为大写 You can使用带引号的标识符创建小写名称的表 和列 同样遵循 SQL 标准
  • 在 Flutter 中绘制 SVG 并与之交互

    我们正在开发一个基于 SVG 输入显示人体的应用程序 人体分为几个区域 例如头部 左臂 右臂 腹部等 我们希望当用户单击例如一只手臂时突出显示图像的某个区域 在 Flutter 中实现这样的事情的最佳方法是什么 我们尝试使用 Flare f
  • 如何在 flutter 中刷新 Navigator.Pop 或 Push 上的状态

    这里我首先有两个页面叫做BSP signup terms页 第二个是Bsp Service page 当我在BSP signup terms在该页面上 我必须根据所选复选框选择一些复选框 它将显示一些数据 但问题是它会向我显示完整的数据 但
  • 具有多个记录路径的 json_normalize

    我正在使用中给出的示例json normalize此处给出的文档pandas json normalize pandas 1 0 3 文档 不幸的是 我无法粘贴我的实际 JSON 但这个示例有效 从文档粘贴 data state Flori