从嵌套的JSON API输出创建数据帧



我正在使用Qualtrics API来提取一些数据以进行工作。我收到的结果以JSON格式返回,我想将数据转换为数据帧。我在Alteryx的一个jupyter笔记本里工作。我计划在Alteryx中导出数据帧,以便在其他地方进行工作。。我所需要做的就是把它定型。我从Qualtrics网站收到了与我下面发布的示例相同的回复。有人知道我如何取嵌套的";元素";部分并创建数据帧?我想制作一个我收到的联系人字段的数据帧。

我尝试过以下几种:

jdata = json.loads(response.text)
df = pd.DataFrame(jdata)
print(df)

但我得到的是整个json响应的数据帧。

示例响应:

{
"meta": {
"httpStatus": "200 - OK",
"requestId": "7de14d38-f5ed-49d0-9ff0-773e12b896b8"
},
"result": {
"elements": [
{
"contactId": "CID_123456",
"email": "js@example.com",
"extRef": "1234567",
"firstName": "James",
"language": "en",
"lastName": "Smith",
"phone": "8005552000",
"unsubscribed": false
},
{
"contactId": "CID_3456789",
"email": "person@example.com",
"extRef": "12345678",
"firstName": "John",
"language": "en",
"lastName": "Smith",
"phone": "8005551212",
"unsubscribed": true
}
],
"nextPage": null
}

}

jdata = json.loads(response.text)
df = pd.json_normalize(jdata, record_path=['result', 'elements'])

事实上,如果jdata是dict的列表,那么这种方法也是可用的。

尝试

jdata = json.loads(response.text)
elements= jdata['result']['elements']
df = pd.DataFrame(elements)
print(df)

最新更新