1. python 에서 7레벨 보석 최저값의 을 가져와 list에 입력하기.
    참고 링크 : https://rusharp.tistory.com/87
    1. 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)


    2. 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)


  2. 결과 값을 정제해서 excel 파일로 저장
    1. 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")


    2. 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")
  3. 실행 결과 확인
    1. 실행 결과 excel 파일 확인 (12~51 행 숨김)

https://github.com/rusharp1/api_study/blob/master/lostark_api/lostark_auction_jewel_excel.py