python을 사용하여 api 검색 결과값을 excel로 저장하기

2024. 6. 14. 18:24·postman&API
  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

'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
'postman&API' 카테고리의 다른 글
  • postman HTTP 메소드 정리 (get, post, put, patch, delete, head, options)
  • python을 사용하여 api response 값을 2번 받아 필요한 내용 출력하기.
  • python을 사용하여 api 검색 결과값을 그래프로 만들기.
  • 로스트아크 API를 사용하여 매시간 보석 가격 확인하기
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (170) N
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • Server&load (32) N
        • AWS (27)
        • Jmeter (0)
        • load test (5) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스터디
    네트워크 테스트
    포스트맨
    qa
    postman
    도커
    테스트 계획서 만들어보기
    API
    QAKOREA
    e2c
    application log
    로스트아크api
    앱공존성
    .cpu
    cka
    테스트 계획서
    리눅스
    개발자에서아키텍트로
    테스트스크립트
    테스트 결과보고서
    linux
    k8s
    쿠버네티스
    vi에디터
    python
    사드웨어리소스
    공존성테스트
    로스트아크
    애플리케이션로그
    LOSTARK
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
python을 사용하여 api 검색 결과값을 excel로 저장하기
상단으로

티스토리툴바