检查 JSON 字典是否为空并存储在列表中
Checking whether a JSON dictionary is empty or not and storing in a list
我有一个 Instagram API,我将其加载到 JSON。响应正常,我什至能够从收到的数据中获取 ID。然后我将它保存在 python 列表中并使用 openpyxl.
将其放入 Excel sheet
问题来了。加载值时,如果在已删除的 Instagram 帐户的情况下 API 没有响应,其中 JSON 将为空,我想将 "ACC deleted" 存储在列表中。
(注意:- 我也提到了类似的问题,但没有得到有效的答案。)
代码如下:
for r in range(1,51):
var=r,test.cell(row=r,column=1).value
xy=var[1]
myopener=Myopener()
url=myopener.open('https://api.instagram.com/v1/users/search?q='+xy+'&count=1&access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33')
**beta=json.load(url)
for item in beta['data']:
list.append(item['id'])** //*HERE I WANT THE CHANGE*
for j in range(len(list)):
for row in sheet.iter_rows(min_row=j+1, max_row=j+1):
for cell in row:
cell.value=list[j]
wb.save('sample.xlsx')
json 响应是这样的:
{
"meta": {
"code": 200
},
"data": [
{
"username": "rawhawk_sk",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12724928_109384759877664_1105313598_a.jpg",
"id": "670907103",
"full_name": "shwan mcswan"
}
]
}
如果 json 响应为空,如下所示,如何将 "ACC deleted" 存储在列表中?
{
"meta": {
"code": 200
},
"data": []
}
您可以检查脚本中的数据是否为空,如果是,则添加一个新条目 'ACC deleted' 到列表。
import json
jsons = []
jsons.append("""{
"meta": {
"code": 200
},
"data": [
{
"username": "rawhawk_sk",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12724928_109384759877664_1105313598_a.jpg",
"id": "670907103",
"full_name": "shwan mcswan"
}
]
}
""")
jsons.append("""{
"meta": {
"code": 200
},
"data": []
} """)
output_list = []
for txt in jsons:
beta = json.loads(txt)
if beta.get('data'):
for item in beta['data']:
output_list.append(item['id'])
else:
output_list.append('ACC deleted')
print(output_list)
我有一个 Instagram API,我将其加载到 JSON。响应正常,我什至能够从收到的数据中获取 ID。然后我将它保存在 python 列表中并使用 openpyxl.
将其放入 Excel sheet问题来了。加载值时,如果在已删除的 Instagram 帐户的情况下 API 没有响应,其中 JSON 将为空,我想将 "ACC deleted" 存储在列表中。
(注意:- 我也提到了类似的问题,但没有得到有效的答案。)
代码如下:
for r in range(1,51):
var=r,test.cell(row=r,column=1).value
xy=var[1]
myopener=Myopener()
url=myopener.open('https://api.instagram.com/v1/users/search?q='+xy+'&count=1&access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33')
**beta=json.load(url)
for item in beta['data']:
list.append(item['id'])** //*HERE I WANT THE CHANGE*
for j in range(len(list)):
for row in sheet.iter_rows(min_row=j+1, max_row=j+1):
for cell in row:
cell.value=list[j]
wb.save('sample.xlsx')
json 响应是这样的:
{
"meta": {
"code": 200
},
"data": [
{
"username": "rawhawk_sk",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12724928_109384759877664_1105313598_a.jpg",
"id": "670907103",
"full_name": "shwan mcswan"
}
]
}
如果 json 响应为空,如下所示,如何将 "ACC deleted" 存储在列表中?
{
"meta": {
"code": 200
},
"data": []
}
您可以检查脚本中的数据是否为空,如果是,则添加一个新条目 'ACC deleted' 到列表。
import json
jsons = []
jsons.append("""{
"meta": {
"code": 200
},
"data": [
{
"username": "rawhawk_sk",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12724928_109384759877664_1105313598_a.jpg",
"id": "670907103",
"full_name": "shwan mcswan"
}
]
}
""")
jsons.append("""{
"meta": {
"code": 200
},
"data": []
} """)
output_list = []
for txt in jsons:
beta = json.loads(txt)
if beta.get('data'):
for item in beta['data']:
output_list.append(item['id'])
else:
output_list.append('ACC deleted')
print(output_list)