基于Python 3数据帧创建JSON

问题描述 投票:0回答:1

我目前正在致力于设置基于 API 调用的自动化,以使用 Python3 将嵌入式数据更新为 Qualtrics 中的调查响应,这些调用的输入是有效负载 JSON,其中包含

responseId
和嵌入式数据字段更新。

我的问题如下。如何使用数据帧创建遵循以下结构的 JSON?

payload = {
    "updates": [
        {
            "responseId": "R_1111",
            "embeddedData": {
                "ED_FIELD_1": "new_value",
                "ED_FIELD_2": "new_value"
            }
        },
        {
            "responseId": "R_2222",
            "embeddedData": {
                "ED_FIELD_1": "new_value_2",
                "ED_FIELD_2": "new_value_2"
            }
        }
    ],
    "ignoreMissingResponses": False
}

我只需要更新一个名为

Division
的嵌入数据字段,我的源数据框具有以下结构,包含大约 6k 条记录:

response_id 部门
R_12345 Div_1
R_67890 Div_2

我尝试过使用“json”库和字典,但这仅适用于一条记录,因为字典不能在循环操作中使用(或者至少我还没有找到方法)。

json python-3.x qualtrics
1个回答
0
投票

如果我理解正确,你想从有问题的数据帧创建字典:

payload = {"updates": [], "ignoreMissingResponses": False}
for resp_id, div in zip(df["response_id"], df["division"]):
    payload["updates"].append(
        {"responseId": resp_id, "embeddedData": {"Division": div}}
    )

print(payload)

打印:

{
    "updates": [
        {"responseId": "R_12345", "embeddedData": {"Division": "Div_1"}},
        {"responseId": "R_67890", "embeddedData": {"Division": "Div_2"}},
    ],
    "ignoreMissingResponses": False,
}
© www.soinside.com 2019 - 2024. All rights reserved.