You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含多列表字典的嵌套JSON转换为pandas DataFrame?

嵌套JSON转Pandas DataFrame方案

需要将以下嵌套JSON数据转换为指定结构的Pandas DataFrame:

{
   "status" : "success",
   "data" : {
      "resultType" : "vector",
      "result" : [
         {
            "metric" : {
               "__name__":"request_time_summary_count",
               "api":"USSD",
               "instance":"10.104.3.50:8080",
               "job":"service-endpoints",
               "operation":"MO"
            },
            "value": [ 1660136610.587, "3" ]
         },
         {
            "metric" : {
               "__name__":"request_time_summary_count",
               "api":"USSD",
               "instance":"service.default.svc:8080",
               "job":"ETD-ussd",
               "operation":"MO"
            },
            "value" : [ 1660136610.587, "4" ]
         }
      ]
   }
 }

实现代码

import pandas as pd

# 假设JSON数据已加载到变量json_data中
json_data = {
   "status" : "success",
   "data" : {
      "resultType" : "vector",
      "result" : [
         {
            "metric" : {
               "__name__":"request_time_summary_count",
               "api":"USSD",
               "instance":"10.104.3.50:8080",
               "job":"service-endpoints",
               "operation":"MO"
            },
            "value": [ 1660136610.587, "3" ]
         },
         {
            "metric" : {
               "__name__":"request_time_summary_count",
               "api":"USSD",
               "instance":"service.default.svc:8080",
               "job":"ETD-ussd",
               "operation":"MO"
            },
            "value" : [ 1660136610.587, "4" ]
         }
      ]
   }
 }

# 提取并整理数据
processed_data = []
for item in json_data["data"]["result"]:
    # 合并metric字典与拆分后的value字段
    row = item["metric"].copy()
    row["timestamp"] = item["value"][0]
    row["count"] = item["value"][1]
    processed_data.append(row)

# 转换为DataFrame并调整列顺序
df = pd.DataFrame(processed_data)
df = df[["__name__", "api", "instance", "job", "operation", "timestamp", "count"]]

# 查看结果
print(df)

最终输出格式

nameapiinstancejoboperationtimestampcount
request_time_summary_countUSSD10.104.3.50:8080service-endpointsMO1660136610.5873
request_time_summary_countUSSDservice.default.svc:8080ETD-ussdMO1660136610.5874

内容的提问来源于stack exchange,提问作者ZN K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:10:12