【问题标题】:Processing Dictionary inside JSON在 JSON 中处理字典
【发布时间】:2021-06-25 20:13:24
【问题描述】:

我有一些代码:

import requests

headers = {
    'authority': 'business.upland.me',
    'appversion': '0.13.24',
    'authorization': '(My auth code here)',
    'platform': 'web',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
    'content-type': 'application/json',
    'accept': '*/*',
    'sec-gpc': '1',
    'origin': 'https://play.upland.me',
    'sec-fetch-site': 'same-site',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    'referer': 'https://play.upland.me/',
    'accept-language': 'en-US,en;q=0.9',
    'if-none-match': 'W/^\\^10d-dcHHdBCD0xcI+3PFMmJm3d3EMaQ^\\^',
}

response = requests.get('https://business.upland.me/contributions/5804', headers=headers)
stakersout = response.content
stakersout = list(stakersout)
print(stakersout)
#get dictionaries here
print(dictionary['username'])

返回一些 JSON:

b'[{"id":"6078a1e0-9103-11eb-a53e-c9ee97fa6188","is_in_jail":false,"pending":false,"avatar_image":"https://upland-image.s3.amazonaws.com/avatars/exclusive/memo_day.svg","avatar_color":"#E900FD","price":0.46,"username":"cryptofan","created_at":"2021-06-25T02:10:35.825Z"}]'

在这种情况下,它们是一个字典,但通常它们会更多。 如何获取每个字典并在 for 循环中处理它?

【问题讨论】:

  • 你知道实际反应会如何吗?
  • 它将与字典相同,但包含另一个用户的信息(用户名、个人资料图片等)
  • 所以,您知道for 循环。也许您可以使用 for 循环更新您的问题,在该循环中您假装知道如何处理每个 dict
  • 我知道如何处理每个dict 我只需要知道如何获取它们。
  • 好吧,我的错。假装你知道 for 循环,并展示你将如何处理每个 dict

标签: python json dictionary


【解决方案1】:

首先,我们将获取响应并将其转换为 python 对象。

stakersout = response.json()

现在我们得到了一个字典列表。在这种情况下,长度为 1 的列表。

[{"id":"6078a1e0-9103-11eb-a53e-c9ee97fa6188","is_in_jail":false,"pending":false,"avatar_image":"https://upland-image.s3.amazonaws.com/avatars/exclusive/memo_day.svg","avatar_color":"#E900FD","price":0.46,"username":"cryptofan","created_at":"2021-06-25T02:10:35.825Z"}]

现在我们可以在 for 循环中寻址该对象,就像使用任何其他列表一样。

For user in stakersout:
    print("Username is: " + user["username"])
    #do whatever else you want

如上面的for 循环所示,您可以使用dictname["key"] 表示法从字典中获取数据,就像标准的python 字典一样——因为它现在只是标准python 字典的标准列表。

【解决方案2】:
stakersout = response.json()
for my_dict in stakersout:
    # process my_dict
    print(my_dict)

还要注意使用response.json()

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多