问题标签 [json-normalize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 json_normalize 规范化嵌套的 json
我正在尝试从嵌套的 json 中创建一个 pandas 数据框。由于某种原因,我似乎无法解决第三级问题。
我的 json 看起来像这样:
等等。
在“文档”部分中是所有实际结果,以“id”开头。一旦所有信息都在那里,下一个以“id”开头的块就紧随其后。
现在我正在尝试为每个单独的块(在本例中为实际项目)创建一个带有键 id、标签和标题(开始)的表。
在定义了 search_url(我从中获取 json)之后,我的代码目前如下所示:
有了这个,我被告知他们 dict_keys 如下:
鉴于上面的 json,我知道我想查看“结果”,然后进一步查看“文档”。根据我找到的文档,我应该能够通过直接寻址结果部分然后通过用“。”分隔字段来寻址嵌套位来实现这一点。我现在尝试了以下代码:
这一直有效,直到 df[field] - 在这个阶段程序告诉我:
不过,它确实适用于上述级别,所以如果我尝试对“名称”和“文档”进行相同操作,我会得到一个可爱的数据框。我究竟做错了什么?我仍然是 python 和 pandas 的初学者,非常感谢任何帮助!
编辑:
所需的数据帧输出大致如下所示:
pandas - 使用 python 解析和展平从 twitter API 检索的 JSON
我一直在为学术目的收集历史 Twitter 数据,我的最终目标是在 Postgres 中结构化和组织数据。但是,我在从 API 展平杂乱的嵌套数据时遇到了一些问题。
我从每个 API 请求中获得了一堆 JSONL 文件,并且我一直在尝试在 Jupyter Notebook 上使用 python 中的数据框处理这些数据。
每个文件都包含嵌套的 JSON 文件:
输出: 数据框
然后,我使用 JSON normalize 来解压缩嵌套的“数据”部分:
这给了我这个输出:数据框
但是,还有其他嵌套列我想展平,但我一直面临问题。当我应用相同的规范化函数时,我得到“TypeError:字符串索引必须是整数”。
我对 python 很陌生,我想了解正在发生的事情以及解决此问题的可能性。另一层复杂性是其余嵌套列具有重复的记录,例如:
总之,我现在的目标是展平包含这些数据的列并创建诸如“normalized_text”之类的列,其中我将有一个列列出 Lisboa, Av. de Brasília 和 Algés-Alcântara。
如果需要额外的信息,请告诉我,这是我在 stackoverflow 中的第一篇文章!
python - 使用 Pandas 进行嵌套 JSON 标准化,KeyError:“尝试使用错误运行='ignore',因为键 'company' 并不总是存在”
我正在尝试规范化从 GraphQL API 获取的 JSON 并使用 json_normalize JSON 将其转换为数据帧
这是我正在尝试的使用熊猫的 json_normalize
如果元内部大小为 2 则没有错误,
例如:- meta= [["node", "organization"], ["node", "name"], ["node", "ip"], ["node", "id"], ["node" , "设备类"]]
但是当我在列表中尝试超过 2 个时,我得到了以下错误。
例如:meta= [["node", "organization", "company"], ["node", "name"],["node", "id"], ["node", "deviceClass"]]
** KeyError: 'company' 上述异常是以下异常的直接原因: .... KeyError: "Try running with errors='ignore' as key 'company' is not always present"**
如何在元内添加 3 个以上的字段?
谢谢
python - 嵌套的 JSON 和 Pandas
我有一个如下所示的嵌套 JSON 文件(许多对象中的前 2 个):
我想将其转换为如下所示的数据框:
单元 | 模型计数 | 点值 | 移动 | 武器技能 | 弹道技能 | 力量 | 韧性 | 伤口 | 攻击 | 领导 | 节省 |
---|---|---|---|---|---|---|---|---|---|---|---|
掠夺者阿巴顿 | 1 | 220\u2022 | 6" | 2+ | 2+ | 5 | 5 | 8 | 6 | 10 | +2 |
混沌领主 | 1 | 80 | 6" | 2+ | 2+ | 4 | 4 | 5 | 4 | 9 | +3 |
我认为解决方案是使用 pandas json_normalize()
但是,当我执行以下操作时,我得到一个 1 行 x 115 列的数据框,其列名如下
有任何想法吗?
python - 将 pandas 嵌套的 JSON 结构转换为数据框
我有作为嵌套 JSON 的输出。如何采用这种嵌套的 JSON 结构并将其更改为数据框?
我认为有两个主要级别“行情”和“承运人”。我有兴趣让“报价”成为数据框中的行。
编辑1:
我尝试了类似下面的代码,但我不明白如何使用将这些嵌套的 JSON 结构转换为数据帧:
我在这里也发现了一个类似的问题。
python - Pandas json_normalize 然后选择列与创建字典然后应用 json_normalize
我有我正在使用的用例 -
- 方法 1:Pandas json_normalize 将字典列表转换为数据框(每个字典循环。),然后选择所需的列。
- 方法 2:可以完成的另一种方法是创建所选列/键的字典(通过循环遍历每个字典的主列表的子集),然后应用 json_normalize。
我试图了解在可扩展性方面哪种方法是正确的。提前致谢。
示例来自 -文档
每个循环 777 µs ± 24.7 µs(7 次运行的平均值 ± 标准偏差,每次 1000 个循环)
笔记:
- 从 API 检索数据
- DataFrame 所需的列接近 40
python - 来自 API JSON 响应的 Python Pandas 数据框 >>
我是 Python 新手,我可以在这里寻求专家的帮助吗?
我希望从https://api.cryptowat.ch/markets/summaries JSON 响应构建一个数据框。基于以下过滤条件
- Kraken 列出的货币对(请注意,有海妖期货我不想要那些)
- 仅与美元配对的货币,即 aaveusd、adausd....
我正在寻找的理想数据框是(不知何故,excel 完美地加载了下面的 json 截图) Dataframe_Excel_Screenshot
resp = requests.get(https://api.cryptowat.ch/markets/summaries) kraken_assets = resp.json() df = pd.json_normalize(kraken_assets) print(df)
输出:
result.binance-us:aaveusd.price.last result.binance-us:aaveusd.price.high ...
0 264.48 267.32 ...
[1 行 x 62688 列]
当我只是将链接粘贴到浏览器 JSON 响应中时使用双引号 ("),但是当我通过 python 代码获取它时。所有双引号 (") 都更改为单引号 (') 知道为什么吗?尽管我尝试使用 json_normalize 解决它,但随后响应更改为 [1 行 x 62688 列]。我不确定如何处理 1 行 62k 列。我不知道如何以我需要的数据框格式提取确切信息(请参阅 excel 屏幕截图)。
任何帮助深表感谢。谢谢你!
python - csv中的嵌套字典转换为熊猫数据框
我尝试json normalize
在嵌套字典中使用,如图A所示,它显示错误string indices must be integers
。这是我的代码
python - 规范化 json 列并与数据框的其余部分连接
这是我在stackoverflow上的第一个问题,所以请不要烤我。我试图在互联网上找到类似的问题,实际上有几个,但对我来说,解决方案不起作用。
我创建了这个数据框:
它看起来像这样:
我希望数据框看起来像这样:
我使用以下代码将 line_items 的类型从 string 更改为 dict:
通常我json_normalize
现在会用它来展平 line_items 列。但我也想保留身份证,不知道该怎么做。我也想避免任何循环。
有没有人可以帮助我解决这个问题?
亲切的问候
joant95