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

如何在Python中读取并转换MS Power Automate数据表为数组?

读取MS Power Automate数据表并转换为Python数组的解决方案

Power Automate导出的数据表通常以JSON格式返回,核心是处理字段名空格转下划线和同名字段多值合并这两个需求,以下是具体实现步骤和代码:

1. 理解Power Automate数据表结构

Power Automate的数据表一般嵌套在value字段下,示例结构如下(可能包含重复字段或带空格的字段名):

{
  "value": [
    {
      "First Name": "John",
      "Last Name": "Doe",
      "Email": "john@example.com",
      "Email": "john.doe@example.com"
    },
    {
      "First Name": "Jane",
      "Last Name": "Smith",
      "Phone Number": "123-456-7890"
    }
  ]
}

2. 核心处理代码

处理重复字段与字段名清理的钩子函数

利用Python的json模块的object_pairs_hook参数,自定义处理逻辑:

import json

def process_pa_table(pairs):
    processed = {}
    for raw_key, value in pairs:
        # 将字段名中的空格替换为下划线
        cleaned_key = raw_key.replace(" ", "_")
        
        if cleaned_key in processed:
            # 若字段已存在,将多值合并为列表
            if not isinstance(processed[cleaned_key], list):
                processed[cleaned_key] = [processed[cleaned_key]]
            processed[cleaned_key].append(value)
        else:
            processed[cleaned_key] = value
    return processed

加载并转换数据表

# 模拟从Power Automate获取的JSON数据(实际可从API响应/本地文件读取)
pa_table_data = '''
{
  "value": [
    {
      "First Name": "John",
      "Last Name": "Doe",
      "Email": "john@example.com",
      "Email": "john.doe@example.com"
    },
    {
      "First Name": "Jane",
      "Last Name": "Smith",
      "Phone Number": "123-456-7890"
    }
  ]
}
'''

# 加载JSON并应用处理逻辑
parsed_data = json.loads(pa_table_data, object_pairs_hook=process_pa_table)

# 转换为Python数组(列表)
python_array = parsed_data["value"]

# 查看结果
for record in python_array:
    print(record)

3. 代码说明

  • 字段名清理:通过replace(" ", "_")直接将带空格的字段名转为下划线命名,符合Python变量命名习惯。
  • 同名字段处理:当遇到重复字段名时,自动将已有值转为列表并追加新值,避免默认JSON解析的覆盖问题。
  • 兼容性:如果Power Automate返回的多值字段本身就是列表(如多选选项),逻辑会直接保留列表结构,无需额外处理。

4. 实际场景扩展

如果是通过Power Automate API获取数据,可结合requests库直接处理响应:

import requests

response = requests.get("YOUR_POWER_AUTOMATE_API_ENDPOINT")
parsed_data = response.json(object_pairs_hook=process_pa_table)
python_array = parsed_data["value"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:05:18