小编Wil*_*iam的帖子

将复杂的 JSON 映射到 Pandas Dataframe

背景
我有一个复杂的嵌套 JSON 对象,我试图df以一种非常具体的方式将其解压到 pandas 中。

\n

JSON 对象
这是一个摘录,包含 JSON 对象的随机数据,其中显示了 1x 家族(即“Falconer Family”)的层次结构示例(包括子项),但是总共有 100 个,此摘录只有 1x 系列,但是完整的 JSON 对象有多个 -

\n
{\n    "meta": {\n        "columns": [{\n                "key": "value",\n                "display_name": "Adjusted Value (No Div, USD)",\n                "output_type": "Number",\n                "currency": "USD"\n            },\n            {\n                "key": "time_weighted_return",\n                "display_name": "Current Quarter TWR (USD)",\n                "output_type": "Percent",\n                "currency": "USD"\n            },\n            {\n                "key": "time_weighted_return_2",\n                "display_name": "YTD TWR (USD)",\n                "output_type": "Percent",\n                "currency": "USD"\n            },\n            {\n                "key": "_custom_twr_audit_note_911328",\n                "display_name": "TWR Audit Note",\n                "output_type": "Word"\n            }\n        ],\n        "groupings": …
Run Code Online (Sandbox Code Playgroud)

python json python-itertools dataframe pandas

10
推荐指数
1
解决办法
1759
查看次数

将嵌套 JSON 对象标准化为 Pandas 数据帧

背景:我正在尝试标准化 json 文件,并将其保存到 pandas 数据框中,但是我在导航 json 结构时遇到问题,并且我的代码无法按预期工作。

预期的数据帧输出:给定以下示例json文件(使用随机数据,但格式与真实数据完全相同),这是我试图生成的输出 -

新实体组 实体ID 调整后的价值
(2022 年 1 月 31 日,无 Div,美元)
调整后的 TWR
(本季度无 Div,美元))
调整后的 TWR
(年初至今,无 Div,美元)
年化调整后 TWR
(自成立以来,无 Div,美元)
成立日期 风险目标
作品集_1 $260,786 (44.55%) (44.55%) (44.55%) * 2021 年 4 月 7 日 不适用
FW Irrev 家族Tr 9552252 $260,786 0.00% 0.00% 0.00% * 2022 年 1 月 11 日 不适用
作品集_2 $18,396,664 美元 (5.78%) (5.78%) (5.47%) * 2021 年 9 月 3 日 生长 …

json normalize dataframe pandas

5
推荐指数
1
解决办法
8219
查看次数

用户警告:此模式被解释为正则表达式,并且具有匹配组

给定以下 pandas DataFrame -

json_path 报告组 实体/分组 实体ID 调整后价值(今日,无 Div,美元) 调整后的 TWR(本季度,无 Div,美元) 调整后的 TWR(年初至今,无 Div,美元) 年化调整后 TWR(自成立以来,无 Div,美元) 调整值(无 Div,美元) TWR审计记录
data.attributes.total.children.[0].children.[0].children.[0] 兵营家庭 威廉和鲁珀特·信托 9957007 -1.44 -1.44
data.attributes.total.children.[0].children.[0].children.[0].children.[0] 兵营家庭 现金 - -1.44 -1.44
data.attributes.total.children.[0].children.[0].children.[1] 兵营家庭 格拉蒂亚控股第二有限责任公司 8413655 55491732.66 -0.971018847 -0.971018847 11.52490309 55491732.66
data.attributes.total.children.[0].children.[0].children.[1].children.[0] 兵营家庭 投资级固定收益 - 18469768.6 18469768.6
data.attributes.total.children.[0].children.[0].children.[1].children.[1] 兵营家庭 高收益固定收益 - 3668982.44 -0.205356545 -0.205356545 4.441190127 3668982.44

我尝试仅保存包含 4 次出现的.children.[]以下语句的行 -

代码: perf_by_entity_df = df[df['json_path'].str.contains(r'(\.children\.\[\d+\]){4}')]

但是收到以下信息:

错误:UserWarning: This pattern is interpreted as a regular expression, and …

expression pandas

3
推荐指数
1
解决办法
2791
查看次数

如何测试二进制的 API 响应

问题:
测试二进制响应的 API 响应的最简单方法是什么?

上下文:
我有一个函数可以对某些数据进行 API 调用。该 API 调用的响应 ( api_response) 可以是 JSON 或二进制。如果是 JSON,并且如果它包含percent_complete,则数据尚未准备好,我的函数使用percent_completekey:pair 值来更新用户的进度条。

如果响应是 JSON 且包含meta,则我的数据已准备就绪并已作为 JSON 对象返回。

如果响应是二进制的,那么我的数据也已准备好,但已作为.xlsx[二进制]返回。这是数据未准备好时的响应,您将看到percent_complete用于进度条 -

{
    "data": {
        "id": "2768510",
        "type": "jobs",
        "attributes": {
            "job_type": "PORTFOLIO_VIEW_RESULTS",
            "started_at": "2022-04-14T16:19:21Z",
            "parameters": {
                "end_date": "2022-04-14",
                "output_type": "json",
                "view_id": 304078,
                "portfolio_id": 1,
                "portfolio_type": "firm",
                "start_date": "2022-04-14"
            },
            "percent_complete": 0.0,
            "status": "In Progress"
        },
        "relationships": {
            "creator": {
                "links": {
                    "self": "/v1/jobs/2768510/relationships/creator",
                    "related": "/v1/jobs/2768510/creator"
                }, …
Run Code Online (Sandbox Code Playgroud)

binary json

3
推荐指数
1
解决办法
1535
查看次数