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

如何在PostgreSQL中实现pandas .to_dict('index')效果的JSON输出

实现方法

直接使用PostgreSQL提供的json_object_agg聚合函数,将每行生成的键值对合并为单个顶层JSON对象即可,最终SQL如下:

SELECT json_object_agg(
    id,
    json_build_object('name', name, 'value', value)
) AS target_json
FROM my_table;

如果更偏好性能更高、支持后续JSON操作的jsonb类型,可以替换为jsonb_object_agg:

SELECT jsonb_object_agg(
    id,
    jsonb_build_object('name', name, 'value', value)
) AS target_json
FROM my_table;

输出效果

针对你给出的示例数据,执行后返回结果完全匹配df.set_index('id').to_dict('index')的效果:

{
  "1": {"name": "joe", "value": 6},
  "2": {"name": "bob", "value": 3},
  "3": {"name": "joey", "value": 2}
}

注:JSON规范要求对象键必须为字符串,因此数字类型的id会自动转为字符串格式的键,属于正常现象。


内容的提问来源于stack exchange,提问作者Alec Mather

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:06