【发布时间】:2018-12-06 16:39:25
【问题描述】:
已回答:在底部回答。
我正在使用请求和 json 从 API 中提取一些数据,但我正在努力使用嵌套字典。
这是我的 JSON。
"data": [
{
"ContactId": "123",
"EmailAddress": "abc@xyz.com",
"FirstName": null,
"LastName": null,
"ClickDate": "6/6/1966",
"Clicks": "5",
"IPAddress": "1.1.1.1.1",
"UserAgent": "IE8.0",
"UniqueLinksClicked": [
{
"LinkURL": "http://link1.com",
"LinkURL": "http://link2.com",
"LinkURL": "http://link3.com"
}
]
}
我可以正常访问所有 ContactID 和其他 1 级内容,但我不知道如何遍历“LinkURL”内容。
这是我的蟒蛇...
result = requests.get(requesturl, headers=headers)
jdata = json.loads(result.content)
for result in jdata["data"]:
contactID = str([(result["ContactId"])])
for result in jdata["data"]["UniqueLinksClicked"]: #I'm doing this wrong, but I'm not sure how.
print(ContactID + " " + str([(result["LinkURL"])]))
它告诉我,当我需要“UniqueLinksClicked”作为字典时,我正在尝试将其处理为列表。我该如何正确地做到这一点?
编辑:
尝试这个for link in jdata["data"]["UniqueLinksClicked"]: 会出现错误,提示它正在等待一个列表。
尝试此for link in jdata["UniqueLinksClicked"]: 会出现关键错误,因为["UniqueLinksClicked"] 是["data"] 字典中的一个项目。
编辑2:
我对@987654327@ 部分中的变量命名感到困惑。在下面的一些帮助下,我想通了。
它应该看起来像这样......
for item in jdata["data"]:
contactID = str([(item["ContactId"])])
print(contactID)
for link in item["UniqueLinksClicked"]:
print(link["LinkURL"])
感谢您的帮助。
【问题讨论】:
-
那个 JSON 看起来不对。有一个具有三个
LinkURL值的对象。键应该是唯一的。这应该是三个不同的对象吗?
标签: python json python-requests