回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试解析嵌套的JSON数据,但是很难从大量嵌套的数据中获取文本</p>
<pre><code>resp = platform.get('/restapi/v1.0/account/~/call-log', params)
print ((resp.text()))
cursor = mydb.cursor()
json_obj = json.loads((resp.text()))
for result in json_obj["records"]:
cursor.execute("INSERT INTO calldata (sessionID, startTime, fromName) VALUES (%s, %s, %s)",
(result["sessionId"],
result["startTime"],
result["from"]["name"]))
</code></pre>
<p>JSON输出</p>
<pre><code>{
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2019-10-09T16:00:00.000Z&page=1&perPage=2",
"records" : [ {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log/123456?view=Simple",
"id" : "123456",
"sessionId" : "123456",
"startTime" : "2019-10-09T20:47:26.577Z",
"duration" : 45,
"type" : "Voice",
"direction" : "Outbound",
"action" : "VoIP Call",
"result" : "Call connected",
"to" : {
"phoneNumber" : "123456"
},
"from" : {
"name" : "Jane Doe",
"phoneNumber" : "123456",
"extensionId" : "123456"
},
"recording" : {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/recording/123456",
"id" : "123456",
"type" : "Automatic",
"contentUri" : "https://media.ringcentral.com/restapi/v1.0/account/123456/recording/581514130067/content"
},
"extension" : {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/extension/1409182064",
"id" : 123456
}
}, {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log/123456?view=Simple",
"id" : "123456",
"sessionId" : "123456",
"startTime" : "2019-10-09T20:37:49.540Z",
"duration" : 7,
"type" : "Voice",
"direction" : "Inbound",
"action" : "Phone Call",
"result" : "Missed",
"to" : {
"phoneNumber" : "123456"
},
"from" : {
"name" : "Bob Smith",
"phoneNumber" : "123456"
}
} ],
"paging" : {
"page" : 1,
"perPage" : 2,
"pageStart" : 0,
"pageEnd" : 1
},
"navigation" : {
"nextPage" : {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2019-10-09T16:00:00.000Z&page=2&perPage=2"
},
"firstPage" : {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2019-10-09T16:00:00.000Z&page=1&perPage=2"
},
"lastPage" : {
"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/123456/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2019-10-09T16:00:00.000Z&page=1&perPage=2"
}
}
}
</code></pre>
<p>我得到的错误是</p>
<blockquote>
<p><code>(result["sessionId"], result["startTime"], result["result"],
result["direction"], result["duration"], result["from"]["name"]))
KeyError: 'name'</code></p>
</blockquote>
<p>我试图从“from”字典和“records”中获取数据。你知道吗</p>