1. 程式人生 > 實用技巧 >【python】指令碼輸出介面json資料為表格

【python】指令碼輸出介面json資料為表格

import requests
import json
import jsonpath
import xlwt,os
import time
#提取當前時間dd/mm/yyyy格式,用來做資料夾的名字
new_time=time.strftime("%Y-%m-%d")
#建立存放表格的資料夾
try:
path=os.makedirs('D:\wenjian\{}'.format(new_time))
except:
print(new_time)
#匯出介面資料
get_param_dict={"questionnaire_uuid":"0d5c4504-5b6-41bd71f49ddf",
"token":"jEZyM-54Jug_r_Rily48Ebn"}
headers={'content-type':'application/json'}
response=requests.post(url='https://qa-admin-api-list',
data=json.dumps(get_param_dict),
headers=headers)
# print(jsonpath.jsonpath(response.json(),'$.data.list[0].user_name')[0])#學生名
response_01=response.json()
# 遍歷介面資料數量(共七個大資料,一個大資料做成一張表)
len_j=jsonpath.jsonpath(response_01, '$.data.total')[0]
for j in range(0,len_j):
# 為了表格名稱
child_name = jsonpath.jsonpath(response_01, '$.data.list[{}].answer_result[2].question_item_data[0].content'.format(j))[0]
parent_name = jsonpath.jsonpath(response_01, '$.data.list[{}].answer_result[0].question_item_data[0].content'.format(j))[0]
parent_phone = jsonpath.jsonpath(response_01, '$.data.list[{}].answer_result[1].question_item_data[0].content'.format(j))[0]
#format格式化
# print(j)
# 建立workbook.save('stu_info.xlsx') 可寫的workbook物件
workbook=xlwt.Workbook(encoding='utf-8')
# 建立工作表sheet
worksheet = workbook.add_sheet('sheet1')
for i in range(0,38):
# 遍歷一個大資料裡面的38個小資料,小資料為表中題目名稱和答案
try:
# try異常處理1
name=jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].title'.format(j,i))[0] #題目名稱
result=jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].question_item_data[0].content'.format(j,i))[0] #題目答案
except:
#except異常處理2,兩個配合使用
continue
# continue結束本次迴圈
#下面欄位為圖片處理,以地址的方式顯示圖片
if name == '請上傳監護人的身份證照片':
result = jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].question_item_data[0].img_url'.format(j, i))[0]
result_01 = jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].question_item_data[1].img_url'.format(j, i))[0]
worksheet.write(i, 2, result_01)
elif name == '以上本人所填的資訊均確認真實有效,同事所有條款已確認無疑問,並同意遵守,請在下方簽名區進行簽名':
result = jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].question_item_data[0].img_url'.format(j, i))[0]
elif name == '請上傳學生正臉照片(用於接機和製作胸牌)':
result = jsonpath.jsonpath(response_01,'$.data.list[{}].answer_result[{}].question_item_data[0].img_url'.format(j, i))[0]
worksheet.write(i, 0, name)
worksheet.write(i, 1, result)
# 儲存表格
workbook.save('D:\wenjian\{}\{}_{}_{}_{}.xlsx'.format(new_time,j+1,child_name,parent_name,parent_phone))
# #建立可寫的workbook物件
# workbook = xlwt.Workbook(encoding='utf-8')
# #建立工作表sheet
# worksheet = workbook.add_sheet('sheet1')
# #往表中寫內容,第一個引數 行,第二個引數列,第三個引數內容
# worksheet.write(0, 0, 'name')
# #在單元格中新增超連結
# worksheet.write(0, 1, xlwt.Formula('HYPERLINK("http://www.huxmxit.com";"newdream")'))
# #儲存表為stu_info.xlsx
# workbook.save('stu_info.xlsx')