- python 에서 7레벨 보석 최저값의 을 가져와 list에 입력하기.
참고 링크 : https://rusharp.tistory.com/87
- API response 값 가져오기
from lostark_api_token import * import requests import datetime import time from openpyxl import Workbook lostark_url = "https://developer-lostark.game.onstove.com" url = lostark_url + "/auctions/items" # 3티어, 7레벨의 보석을 즉시구매가 오름차순으로 검색함. Body = { "Sort": "BUY_PRICE", "CategoryCode": 210000, "ItemTier": 3, "ItemName": "7레벨", "PageNo": 0, "SortCondition": "ASC" } headers = { 'authorization': authorization_key, # 'Content-Type': 'application/json' } jewel_info_list = [] # post response값 받아옴. response = requests.post(url, headers=headers, data= Body)
- response 값에서 검색한 시간, 최저 보석에 해당되는 가격, 보석 타입, 클래스명, 스킬명 list 에 저장
for i in range(60): if(response.status_code == 200): jsonData = response.json() if jsonData["Items"]: # 현재 시간, 보석 타입, 클래스명, 스킬명, 최저 가격 now = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') price = jsonData["Items"][0]["AuctionInfo"]["BuyPrice"] jtype = jsonData["Items"][0]["Name"] class_name = jsonData["Items"][0]["Options"][0]["ClassName"] skill_name = jsonData["Items"][0]["Options"][0]["OptionName"] # 리스트에 값 추가. jewel_info_list.append(["",i, now, price, jtype, class_name, skill_name]) else: print("검색 결과가 없습니다.") else: print("Error Code:" + response.status_code) # 60초 대기하기 (1분단위) time.sleep(60)
- API response 값 가져오기
- 결과 값을 정제해서 excel 파일로 저장
- excel파일로 저정하기 (max, min 을 excel 수식으로 지정하기)
wb = Workbook() ws = wb.active ws.title = "로스트아크 7레벨 보석 가격 변화 추이" # 헤더 추가 ws.append(["", "번호", "시간", "보석 타입", "가격", "클래스명", "스킬명"]) # 보석 정보 추가 for i, value in enumerate(jewel_info_list): ws.append(value) # 열 범위 설정 (B~G) columns = [chr(i) for i in range(ord('B'), ord('H'))] lenth = len(jewel_info_list) + 1 # MAX 값 수식 입력 max_value = ([f"=INDEX({col}2:{col}{lenth}, MATCH(MAX(D2:D{lenth}),D2:D{lenth}, 0))"\ for col in columns]) max_value.insert(0, "max") ws.append(max_value) # MIN 값 수식 입력. min_value = ([f"=INDEX({col}2:{col}{lenth}, MATCH(MIN(D2:D{lenth}),D2:D{lenth}, 0))"\ for col in columns]) min_value.insert(0, "min") ws.append(min_value) # 엑셀 파일 저장 wb.save("lostark_jewel_test.xlsx")
- excel파일로 저정하기 (max, min 을 Lambda 함수로 직접 추가하기)
wb = Workbook() ws = wb.active ws.title = "로스트아크 7레벨 보석 가격 변화 추이" # 헤더 추가 ws.append(["", "번호", "시간", "보석 타입", "가격", "클래스명", "스킬명"]) # 보석 정보 추가 for i, value in enumerate(jewel_info_list): ws.append(value) # Lambda 함수를 사용하여 max, min value 사용 max_value = max(jewel_info_list, key=lambda x:x[4]) max_value[0] = "max" ws.append(max_value) min_value = min(jewel_info_list, key=lambda x:x[4]) min_value[0] = "min" ws.append(min_value) # 엑셀 파일 저장 wb.save("lostark_jewel_test.xlsx")
- excel파일로 저정하기 (max, min 을 excel 수식으로 지정하기)
- 실행 결과 확인
- 실행 결과 excel 파일 확인 (12~51 행 숨김)
- 실행 결과 excel 파일 확인 (12~51 행 숨김)
https://github.com/rusharp1/api_study/blob/master/lostark_api/lostark_auction_jewel_excel.py
'postman&API' 카테고리의 다른 글
postman HTTP 메소드 정리 (get, post, put, patch, delete, head, options) (0) | 2024.06.17 |
---|---|
python을 사용하여 api response 값을 2번 받아 필요한 내용 출력하기. (0) | 2024.06.15 |
python을 사용하여 api 검색 결과값을 그래프로 만들기. (1) | 2024.06.13 |
로스트아크 API를 사용하여 매시간 보석 가격 확인하기 (1) | 2024.06.12 |
postman runner 을 사용하여 여러 변수를 한번에 테스트하기 (0) | 2024.06.11 |