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

Python用pd.json_normalize处理Monday.com API JSON转CSV报KeyError如何解决

问题原因
  • 你触发KeyError: 'items'的核心原因是pd.json_normalize的参数传值不符合你的JSON结构:你传入的根JSON对象json_data的顶层键只有data和account_id,没有直接的items字段。items字段的实际层级是json_data['data']['boards'][0]['items']。
  • 另外即使你找到了正确的items列表,直接调用normalize也无法自动把column_values嵌套数组展开成多列,还需要额外处理这个字段的结构。
正确实现代码

你可以直接遍历处理items列表,把嵌套的列值转成独立字段,再生成DataFrame导出CSV,逻辑更直观易懂:

import requests
import json
import pandas as pd

apiKey = "API Key Here"
apiUrl = "https://api.monday.com/v2"
headers = {"Authorization" : apiKey}

query2 = '{boards(ids:123456) {items{name, column_values{title text } } } }'
data = {'query' : query2}

response = requests.post(url=apiUrl, json=data, headers=headers)
json_data = json.loads(response.text)

# 提取items列表
items = json_data['data']['boards'][0]['items']
processed_rows = []

for item in items:
    # 初始化行数据,保存条目名称
    row = {"条目名称": item['name']}
    # 遍历嵌套的列值,把列标题作为键,列内容作为值存入行
    for col_val in item['column_values']:
        row[col_val['title']] = col_val['text']
    processed_rows.append(row)

# 生成DataFrame并导出CSV,用utf-8-sig编码避免特殊字符乱码
df = pd.DataFrame(processed_rows)
df.to_csv('monday_board_export.csv', index=False, encoding='utf-8-sig')

运行后会在当前目录生成monday_board_export.csv文件,结构如下:

条目名称PersonStatusDate
Item 1Mark McCoyNone2021-02-05
This is a new itemNone2021-04-17
............

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:24:09