根据一个请求,我有一个给定的变量,如
realname = "Toni Toni"
我有一个结构化的JSON,我用它调用它
with urllib.request.urlopen("https://api.webside") as url:
data = json.loads(url.read().decode())
结构就像
{
"status": 200,
"result": {
"accountStatistics": [{
"account": {
"name": "Toni Toni",
"handle": "toni.k",
},
}, {
"account": {
"name": "Gina",
"handle": "katja.k",}]
...}}
我想要的是:当我给定的var“realname”与JSON中的任何变量“name”匹配时,创建一个新变量“username”,该变量包含变量“handle”的字符串(适用于它所属的“name”) 因此,我的结果是:
realname = "Toni Toni"
username = "toni.k"
我找到了代码示例,但无法将其转移到我的特定问题。我是Python新手。谁能帮帮我吗
我试图访问这个,但得到了一个TypeError: list indices must be integers or slices, not str
:
for ["account"]["name"] in data["result"]["accountStatistics"]:
if ["name"] ==realname:
username = account["name"]
print(username)
for
之后的内容应该是一个新变量的名称,该变量将包含在每次迭代中循环的下一个值在这里,我们正在创建一个新变量
account
,它将在循环体的持续时间内连续接受列表(数组)data["result"]["accountStatistics"]
中的每个值。(当循环退出时,它将引用它在循环中的最后一个值。如果您确定要查找的值是唯一的,或者您只需要第一次命中,我建议您在找到该值时退出循环。)要查看Python正在做什么,可以在
for
循环中添加print(account)
;您应该能够观察变量每次从数组中获取新值的方式。(当然,调试完成后,请取出print
。)getUsernameOf(realname, data)
接受两个参数,要查找的name
和要搜索的JSON使用:
作为
data.json
,然后运行:相关问题 更多 >
编程相关推荐