how to fetch data from json schema? error shown-TypeError: string indices must be integers

how to fetch data from json schema? error shown-TypeError: string indices must be integers

我收到 API 的 json 回复:-

 {
"meta":  {
"code": 200
},
"data":  {
"username": "luxury_mpan",
"bio": "Recruitment Agents\nThe most powerful manufacturers,\nwe have the best quality.\nWechat:13255996580\nWhatsapp:+8618820784535",
"website": "",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/10895140_395629273936966_528329141_a.jpg",
"full_name": "Mpan",

 "counts":  {
   "media": 17774,
  "followed_by": 7982,
  "follows": 7264
 },

 "id": "1552277710"
 }
}

我想获取 "media"、"followed_by" 和 "follows" 中的数据并将其存储在三个不同的列表中,如下面的代码所示:--

for r in range(1,5):
    var=r,st.cell(row=r,column=3).value
    xy=var[1]
    ij=str(xy)
    myopener=Myopener()
    url=myopener.open('https://api.instagram.com/v1/users/'+ij+'/?access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33')
    beta=json.load(url)
    for item in beta['data']:
        list1.append(item['media'])
        list2.append(item['followed_by'])
        list3.append(item['follows'])

当我 运行 它时,它显示错误 TypeError: string indices must be integers 为了获取上述值,我的循环将如何更改?

另外,出于好奇问:- 有没有办法从数据字典的 "BIO" 键中获取 Watzapp 编号?

我已经提交了类似的问题,但仍然没有得到我的答复。请帮忙!

beta['data'] 是一个字典对象。当您使用 for item in beta['data'] 对其进行迭代时,item 所取的值将是字典的 keys"username""bio"

那么当你要求,例如,item['media'] 就像要求 "username"['media'],这当然没有任何意义。

不太清楚您想要的是什么:它只是 counts 里面的东西吗?如果是这样,那么您可以说 item = beta['data']['counts'] 而不是 for item in beta['data']:,然后 item['media'] 等将是您想要的值。

关于你的次要问题:我建议研究 正则表达式