我正在尝试向Azure AD查询返回JSON的一些数据。我想获取这些数据的一部分并填写excel表。我已经检查了许多将JSON中的所有数据转储到excel表(使用xlwt)的示例,但是我如何仅针对JSON数据的某些部分执行此操作?
这是我正在使用的脚本:
import requests
def get_application_list():
application_list_response = requests.get("https://graph.microsoft.com/beta/applications", verify=False,
headers={"Authorization": "Bearer" + access_token})
application_list_response_json = application_list_response.json()
for item in application_list_response_json['value']:
print("Application Name:", item['displayName'])
print("Application ID:", item['id'])
get_application_list()
我想在Excel工作表中获取应用程序名称和应用程序ID。样本输出:
P.S:我对Python很新。任何优化此代码的建议也会有所帮助。谢谢!
答案 0 :(得分:1)
只需将其另存为CSV文件,然后即可在M $ Excel中打开。
import csv
import requests
def save_application_list(target_file):
application_list_response = requests.get("https://graph.microsoft.com/beta/applications", verify=False,
headers={"Authorization": "Bearer" + access_token})
application_list_response_json = application_list_response.json()
with open(target_file, 'w') as fp:
writer = csv.DictWriter(fp, ['displayName', 'id'])
writer.writeheader()
writer.writerows(application_list_response_json['value'])
save_application_list('/path/to/your/saved/file.csv')
更新
要将字段名称更改为['Application Name', 'Application ID']
,只需将writer.writeheader()
更改为writerow()
,如下所示:
def save_application_list(target_file):
...
with open(target_file, 'w') as fp:
writer = csv.DictWriter(fp, ['displayName', 'id'])
writer.writerow({
'displayName': 'Application Name',
'id': 'Application ID'
})
writer.writerows(application_list_response_json['value'])
...
更新2:
由于JSON文件中有其他字段无需保留,因此代码可以是这样的:
def save_application_list(target_file):
...
with open(target_file, 'w') as fp:
writer = csv.DictWriter(fp, ['Application Name', 'Application ID'])
writer.writeheader()
writer.writerows({
'Application Name': item['displayName'],
'Application ID': item['id']
} for item in application_list_response_json['value'])
...