Posts

Showing posts with the label avle-test

파이썬 beem에서 스팀 API 노드 전환

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/bbde83-beem-api 파이썬 beem에서 스팀 API 노드에 문제가 있을 경우 다른 노드로 전환하는 방법입니다. 접속 대상 노드 목록을 리스트(list)로 가지고 있다가, 접속에 실패하면 순차적으로 다른 노드에 접속하도록 할 수 있습니다. 예제를 보겠습니다. from beem import Steem from beem.account import Account import time # 접속 노드 목록 node_list = ['https://api.steemit.com', 'https://"https://steemapi.boylikegirl.club"] # 초기 인덱스값 0 node_idx = 0 while True: try: print("API 노드 접속:", node_list[node_idx]) # 인덱스 node_idx에 해당하는 원소가 접속 대상 API노드 s = Steem(node=node_list[node_idx]) a = Account(steem_id, blockchain_instance=s) # 예외 발생 없이 접속이 완료되었으면 무한 루프에서 탈출 break except: print("API 노드 접속 실패:", node_list[node_idx]) print("다른 노드로 전환합니다.") # 다음 인덱스에 있는 노드로 접속하도록 node_idx 갱신 node_idx = (node_idx + 1) % node_list_len print("접속 성공:", node_list[node_idx]) try/except 구문을 이용해서 Steem 객체와 Account 객체가 예외 발생 없이 정상적으로 생성되면 무한 루...

파이썬에서 리스트 원소를 계속 돌아가면서 순차적으로 가져오기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/86886b 파이썬에서 리스트 원소를 순차적으로 가져오는데, 원수 개수보다 많은 회수를 가져올 경우 다시 처음으로 돌아가는 식으로 가져오는 예시입니다. 예를 들어 원소가 3개인 리스트에서 인덱스 0번부터 2번까지 가져오고, 그다음엔 다시 0번 이런식으로 순차적으로 가져오는 경우입니다. 모듈로(modulo) 연산자(%)를 활용해서 간단하게 구현할 수 있습니다. x = ['a', 'b', 'c'] len_x = len(x) for i in range(5): idx = i % len_x print(x[idx]) a b c a b @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 데코레이터(decorator) 설명 자료

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/decorator 파이썬의 데코레이터 관련 자료입니다. 함수의 인자(argument)에 다른 함수를 전달해서 처리하는 방식인 것 같은데, 아직 명쾌하게 이해가 되지는 않네요. 좀 더 공부하다 보면 이해할 가능성도 있으니 일단은 찾은 자료를 기록해 놓기로 했습니다. 우선 pythonbasics.org라는 웹사이트의 자료입니다. Python Decorators Introduction - pythonbasics.org 예전에 한번 포스팅했던 askpython.com 웹사이트 에도 데코레이터 설명 자료가 있습니다. Decorators in Python - askpython.com 직접 사용할 일이 있을 것 같지는 않은데, 다른 사람이 작성한 코드를 읽을 수 있으려면 알아두면 좋을 것 같긴 합니다. 당장은 직접적인 필요성을 못 느껴서 그런지 확 와 닿지는 않네요. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬과 SDS를 이용해서 특정 기간 동안의 계정 이력 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/60bf81-sds 파이썬과 SDS를 통해서 특정 기간 동안의 계정 이력(account history)을 조회할 수 있습니다. 우선 SDS API 활용에 대한 기본적인 내용은 아래의 링크를 참고하시기 바랍니다. SDS API의 기본적인 사용법 계정 이력 조회와 관련된 SDS API 설명서는 아래의 링크입니다. https://sds1.steemworld.org/describeMethod/account_history_api.getHistoryByOpTypesTime 이 API는 특정 계정에 대하여 특정 종류의 오퍼레이션(operation)을 수행한 이력을 조회합니다. 조회기간은 유닉스 타임스탬프(unix timestamp) 형식으로 지정하며, 요청 형식은 아래과 같습니다. https://sds1.steemworld.org/account_history_api/getHistoryByOpTypesTime/[account]/[op_types]/[start_timestamp]-[end_timestamp]/ 아래의 예시는 파이썬의 requests 모듈을 이용해서 1시간(3600초)전부터 현재 시점까지 @joviansummer의 포스팅/댓글 작성 및 보팅 이력를 조회하는 경우입니다. 오퍼레이션 종류를 2개 이상 지정할 경우엔 쉼표(,)로 구분하며 포스팅/댓글은 "comment", 보팅은 "vote"입니다. import requests import json import datetime # 대상 계정 steem_id = 'joviansummer' # 오퍼레이션 종류: 포스팅/댓글, 보팅 op_types = 'comment,vote' # 현재 시각 now = datetime.datetime.now() # 타임스탬프 형식으로 변환 now_ts = int(now.str...

파이썬 beem에서 특정 블럭번호에 속한 트랜잭션(오퍼레이션) 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/59767e-beem 파이썬 beem을 이용해서 특정 블럭 번호에 속한 트랜잭션(오퍼레이션)을 조회할 수 있습니다. beem.block 모듈에서 제공하는 Block 객체를 이용합니다. 우선 트랜잭션과 오퍼레이션에 관한 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다. 파이썬 + 스팀: 트랜잭션(transaction)과 오퍼레이션(operation) 아래의 예시는 블럭 번호 69075700에 해당하는 블럭을 확인하는 예제입니다. from beem.steem import Steem from beem.block import Block steem_nodes = ["https://api.steemit.com"] steem = Steem(node=steem_nodes) blk_num = 69075700 blk = Block(blk_num, blockchain_instance=steem) blk_ops = blk.operations 위의 예시에서 변수 blk_ops는 리스트(list)가 되며, 각 원소는 해당 블럭에 저장된 오퍼레이션입니다. 첫번째 원소를 출력해 보면 아래와 같습니다. print(blk_ops[0]) {'type': 'vote_operation', 'value': {'voter': 'bigtakosensei', 'author': 'vivigibelis', 'permlink': 'steemit-engagement-challenge-s5-w4-mis-5-sentidos', 'weight': 1400}} 각 오퍼레이션 정보는 딕셔너리(dict) 형식이며 키(key)는 type과 value가 있습니다. type에는 오퍼레이션의 종류(...

파이썬 튜플(tuple) 자료형

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/tuple 파이썬의 튜플(tuple)은 리스트(list)와 비슷한데 값을 추가하거나 삭제하거나 변경할 수 없다는 점이 다릅니다. x = (1, 3, 2) 리스트와 마찬가지로 인덱스를 이용해서 값에 접근할 수 있고, len() 함수로 원소의 수를 확인할 수 있습니다. print(x[0]) 1 print(len(x)) 3 내용을 변경할 수 없는 리스트가 튜플이라고 생각하면 될 것 같습니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 beem에서 특정 블럭번호의 타임스탬프 조회(beem.block.Block 객체)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/beem-beemblockblock 파이썬 beem에서 특정 블럭번호에 대응하는 블럭의 타임스탬프를 조회할 수 있습니다. 얼마전에 특정 블럭 번호에 대응하는 시간을 조회하는 방법을 포스팅했는데요. 여기에 정리하는 것은 또 다른 방법입니다. 일단 이전 포스트는 아래의 링크입니다. beem.blockchain 모듈의 Blockchain 객체를 이용한 방법입니다. 파이썬 beem에서 특정 블럭 번호에 대응하는 시간 조회 여기서 다룰 내용은 beem.block 모듈의 Block 객체를 이용한 방법입니다. 특정 블럭 번호에 대응하는 블럭을 조회하여 Block 객체에 할당하고 여기에서 타임스탬프를 확인합니다. from beem.steem import Steem from beem.block import Block steem_nodes = ["https://api.steemit.com"] steem = Steem(node=steem_nodes) blk_num = 69075700 blk = Block(blk_num, blockchain_instance=steem) blk_time = blk.time() 위의 예시에서 blk_time 변수에 할당된 타임스탬프는 datetime 형식이며, 시간대는 GMT(UTC) 기준입니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - ...

SDS를 통해 조회한 스팀잇 포스트 정보의 타임스탬프 시간대(timezone)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds-timezone 우선 파이썬과 SDS를 이용한 스팀잇 포스트 정보 조회 방법은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다. 파이썬과 SDS를 이용한 스팀잇 포스트 정보 조회 스팀잇 포스트 정보를 스팀 API 노드에서 조회할 경우, 타임스탬프(timestamp)의 시간대(timezone)는 GMT(UTC)입니다. 따라서 한국 시간 기준으로 9시간이 느립니다(한국 시간은 GMT+9시간입니다). 흥미롭게도, SDS를 통해서 포스트 정보를 가져오면 타임스탬프의 시간대가 지역 시간, 즉 한국 시간(GMT+9)입니다. IP주소를 가지고 지역 시간대로 환산해서 응답을 주는 것인지 다른 방식을 사용하는 것인지 모르겠지만 어쨌든 시간이 한국 시간 기준으로 조회됩니다. 앞에서 언급한 이전 포스트의 예제 코드를 다시 가져와 보면 아래와 같습니다. import requests import json author = 'joviansummer' permlink = 'f7bf32-print' sds_url = 'https://sds1.steemworld.org/posts_api/getPost/' + author + '/' + permlink res = requests.get(sds_url) res_dict = json.loads(res.text) 포스트 작성 시간은 아래와 같이 "result"의 "created" 키(key)에서 확인할 수 있습니다. print(res_dict['result']['created']) 마지막으로 수정한 시간은 "last_update" 키에 있습니다. print(res_dict['result']['last_update'...

파이썬과 SDS를 이용한 스팀잇 포스트 정보 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/f23a48-sds SDS의 기본적인 동작은 이전 포스트를 참고하시기 바랍니다. SDS API의 기본적인 사용법 파이썬의 requests 모듈을 이용해서 SDS API를 통해 특정 포스트 정보를 조회할 수 있습니다. 포스트 지정은 저자와 펌링크(permlink)로 합니다. SDS의 포스트 조회 관련 설명서는 아래의 링크입니다. https://sds1.steemworld.org/describeMethod/posts_api.getPost 예제 코드는 아래와 같습니다. import requests import json author = 'joviansummer' permlink = 'f7bf32-print' sds_url = 'https://sds1.steemworld.org/posts_api/getPost/' + author + '/' + permlink res = requests.get(sds_url) res_dict = json.loads(res.text) json 형식으로 응답이 온 것을 json.loads() 함수를 이용해서 딕셔너리(dict)로 변환했습니다. 주요 정보를 아래와 같이 출력해 볼 수 있습니다. print("저자:", res_dict['result']['author']) print("제목:", res_dict['result']['title']) print("본문:", res_dict['result']['body']) 저자, 제목, 본문 외에도 다양항 정보가 있으므로 해당 키(key)를 찾아서 확인하면 됩니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jsw...

파이썬에서 유닉스 타임스탬프를 datetime 객체로 변환

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/e6c02e-datetime 파이썬에서 유닉스 타임스탬프를 datetime 객체로 변환할 수 있습니다. 유닉스 타임스탬프는 1970년 1월 1일 9시 0분 0초부터 몇초가 경과했는지를 나타냅니다. 이 값을 datetime 객체로 변환하려면 아래와 같이 하면 되겠습니다. import datetime unix_timestamp = 1667365040 dt = datetime.datetime.fromtimestamp(unix_timestamp) print(dt) 2022-11-02 13:57:20 반대로 datetime 객체로부터 유닉스 타임스탬프를 얻으려면 아래와 같이 합니다. ts = dt.strftime("%s") print(ts) 1667365040 한가지 유의할 점은, 첫번째 예제의 fromtimestamp() 함수에 인자로 들어가는 값은 정수(int)이고 두번째 예제의 strftime() 함수를 통해 도출된 값은 문자열(str)입니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬에서 지역 시간대(local timezone) 정보 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/local-timezone 파이썬에서 지역 시간대 정보를 확인할 수 있습니다. tzlocal 모듈의 get_localzone() 함수를 사용합니다. import tzlocal local_tz = tzlocal.get_localzone() print(local_tz) Asia/Seoul 시간대를 포함한 현재 지역 시간을 datetime 객체로 생성하려면 아래와 같이 할 수 있겠습니다. import datetime import tzlocal # 현재 시각 가져오기. 시간대 정보 없음 now = datetime.datetime.now() # 시간대 정보 추가 now_local = now.astimezone(tzlocal.get_localzone()) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

스팀 API 노드의 개략적 구성, 그리고 full node의 의미

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/fcae32-api-full-node 아래의 내용은 제가 개념적으로 이해하고 있는 부분이고, 실제로 작업해 본 적은 없습니다. 그렇긴 하지만 스팀잇이 어떻게 동작하는지에 대해 약간의 이해도를 높일 수 있는 내용이지 않을까 싶어서 써 봅니다. 이 점을 감안해 주시기 바라며, 개인적인 추측이 많기 때문에 혹시 내용중에 잘못 알고 있는 부분이 있으면 댓글로 알려 주시면 감사하겠습니다. 스팀잇은 스팀 블럭체인을 이용한 웹 서비스입니다. 예를 들어 포스팅을 하면 하면 그 내용과 부가정보가 블럭체인에 기록되고, 열람을 하면 기록된 내용을 블럭체인으로부터 조회합니다. 증인 노드들이 블럭체인에 기록되는 내용을 유지하는 역할을 합니다. 블럭체인과의 상호작용 과정은 API 노드와의 통신으로 이루어집니다. API 노드는 블럭체인 데이터와 함께 이를 효율적으로 관리하기 위한 데이터베이스(DB)를 갖추고 있습니다. 스팀잇의 API 노드는 3개의 노드로 이루어집니다. 제가 여기서 사용하는 명칭이 정확한 공식 명칭이 아닐 수도 있습니다만, RPC 노드, AH 노드, Hivemind 노드입니다. 메인 노드는 RPC 노드이고, 계정 이력(account history) 관련 기능을 제공하는 것이 AH 노드이고, 커뮤니티 관련 기능을 제공하는 것이 Hivemind 노드입니다. 스팀잇이나 다른 스팀 관련 앱에서 사용하는 API 요청은 그 성격에 따라 위의 3개 노드에 의해 처리됩니다. 현재 API 노드 현황은 아래의 링크에서 확인해 볼 수 있습니다. @justyy님의 웹사이트입니다. https://steemyy.com/node-status.php 현황을 보면 여러개의 API 노드 주소가 존재하는 것을 볼 수 있습니다. 이 노드들이 각자의 AH 노드, Hivemind 노드를 갖추고 있는 지는 불분명합니다. 제가 지금까지 서비스를 개발하고 운영하면서 ...

파이썬의 print() 함수에서 줄바꿈 없이 같은 자리에 겹쳐서 출력하기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/f7bf32-print 파이썬의 print() 함수로 화면에 출력할 때 줄바꿈이 없이 같은 자리에 계속 출력하도록 할 수 있습니다. print()의 end 옵션을 지정하면 출력후 마지막에 어떤 값을 붙일 것인지를 설정할 수 있는데 이것을 줄바꿈(\n)이 아니라 되돌아가기(\r)로 하면 됩니다. end 옵션을 지정하지 않을 경우 기본값은 줄바꿈입니다. 아래의 예시를 보면 쉽게 알 수 있습니다. 1초 간격으로 0부터 14까지 같은 자리에 출력을 하는 경우입니다. import time for i in range(15): time.sleep(1) print(i, end='\r') print('완료') @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 beem에서 특정 포스트의 작성 시간과 수정 시간 확인

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/45c29-beem 파이썬 beem에서 포스트 작성 시간과 수정 시간을 확인하는 방법입니다. 포스트는 beem.comment 모듈에 있는 Comment 객체를 이용해서 조회할 수 있습니다. 작성 시간은 'created' 키(key)에, 마지막 수정 시간은 'updated' 키(key)에 있으며, datetime 객체로 가져옵니다. from beem import Steem from beem.comment import Comment node_list = ['https://api.steemit.com'] steem = Steem(node=node_list) authorperm = 'joviansummer/b01bb' comment = Comment(authorperm, blockchain_instance=steem) # created time (datetime) created_dt = comment['created'] updated_dt = comment['updated'] print(created_dt) print(updated_dt) 2022-10-26 12:58:27+00:00 2022-10-26 12:58:27+00:00 위의 예시는 @joviansummer가 작성한 포스트중 펌링크(permlink)가 "b01bb"인 포스트에 대한 것입니다. 작성후 수정하지 않았기 때문에 작성 시간과 수정 시간이 동일합니다. 한가지 유의할 점은 시간이 UTC(GMT) 기준이라는 것입니다. 한국 시간으로는 여기에 9시간을 더해야 합니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~wi...

파이썬의 __name__ 변수

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/name 파이썬에서 사용하는 특수한 변수중에 "__name__"이라는 것이 있습니다. 이 변수의 값은 대상 파이썬 스크립트를 직접 실행하느냐 또는 import 해서 사용하느냐에 따라 달라집니다. 예를 들어 test.py라는 스크립트가 있다고 하면, 이 스크립트를 직접 실행할 경우(python3 test.py 이런식으로) __name__ 변수에는 "__main__"이 할당됩니다. 반면에 다른 스크립트에서 이 스크립트를 import하는 경우(import test 이런식으로) __name__ 변수에는 모듈 이름인 "test"가 할당됩니다. 스크립트를 import하는 경우도 있고 직접 실행하는 경우도 있다면 직접 실행할 때 사용하기 위한 main() 함수를 정의하고, 아래와 같이 직접실행할 때만 main() 함수를 실행하도록 할 수 있겠습니다. if __name__ == '__main__': main() @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 beem에서 최근에 작성된 포스트 확인

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/5c5ed-beem 파이썬 beem에서 최근에 작성된 포스트 목록을 확인할 수 있습니다. beem.comment 모듈에서 제공하는 RankedPosts() 함수를 이용합니다. 결과는 Comment 객체로 이루어진 리스트(list)가 됩니다. 예제 코드를 보겠습니다. from beem.steem import Steem import beem.comment steem_nodes = ["https://api.steemit.com"] steem = Steem(node=steem_nodes) c_list = beem.comment.RankedPosts('created', limit=4, blockchain_instance=steem) 정렬 기준은 'created'로 설정하여 최근 포스트를 가져오도록 했고, limit 옵션을 이용해서 최근 4개의 포스트를 가져오도록 했습니다. 예를 들어 각 포스트의 제목을 확인하고 싶다면 아래와 같이 할 수 있겠습니다. for i in c_list: print(i.title) 특정 태그(tag)를 사용한 포스트에 한정해서 가져올 수도 있습니다. 아래의 예시는 태그로 "python"을 사용한 최근 포스트를 가져오는 경우입니다. c_list_python = beem.comment.RankedPosts('created', tag='python', limit=4, blockchain_instance=steem) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개...

파이썬에서 특정 디렉토리의 상위 디렉토리 가져오기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/d7db11 파이썬에서 특정 디렉토리의 바로 상위 디렉토리(parent directory)를 가져오는 방법입니다. os.path.dirname() 함수를 사용합니다. 예시를 보면 금방 알 수 있습니다. import os print(os.path.dirname('/home/joviansummer/')) /home 현재 디렉토리의 상위 디렉토리는 아래와 같이 확인할 수 있겠습니다. # 현재 디렉토리 cur_dir = os.getcwd() # 상위 디렉토리 parent_dir = os.path.dirname(cur_dir) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬에서 딕셔너리 정렬

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/b01bb 파이썬 딕셔너리(dict)를 정렬(sort)하는 방법입니다. sorted() 함수를 사용하는데, 딕셔너리는 키(key)와 값(value)의 쌍으로 구성되어 있기 때문에 키를 기준으로 정렬할 것인지 또는 값을 기준으로 정렬할 것인지에 따라 방법이 달라집니다. 우선 키를 기준으로 정렬하는 경우를 보겠습니다. x = { 'a':10, 'c':5, 'b':7 } print(sorted(x)) ['a','b','c'] 딕셔너리를 sorted() 함수에 인자로 넣으면 키만 정렬된 채로 가져오게 됩니다. 키와 값을 모두 가져오려면 딕셔너리의 원소를 튜플로 바꾸기 위해 아래와 같이 items() 함수를 사용합니다. x_s = sorted(x.items()) print(x_s) [('a', 10), ('b', 7), ('c', 5)] 키를 기준으로 정렬된 것을 볼 수 있습니다. 그러므로 이 결과를 다시 딕셔너리로 바꾸면 되겠습니다. x_sorted_by_key = dict(sorted(x.items())) print(x_sorted_by_key) {'a': 10, 'b': 7, 'c': 5} 값을 기준으로 정렬하는 것은 조금 더 복잡합니다. sorted() 함수에서 어떤 값을 기준으로 정렬할 것인지 지정하기 위해 key 옵션을 사용하고 여기에 위에서 변환한 튜플의 두번째 원소(인덱스 1)를 지정해야 합니다. x_sorted_by_val = dict(sorted(x.items(), key=lambda i:i[1])) print(x_sorted_by_val) {'c': 5, 'b': 7, 'a': 1...

파이썬 리스트의 부분집합 가져오기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/42887 파이썬 리스트(list)의 원소들 중 일부 범위의 것들만 가져와서 사용할 수 있습니다. 예시를 보면 금방 알 수 있습니다. x = ['a','b','c','d'] # x의 0번 인덱스에 있는 원소 출력 print(x[0]) a 리스트의 인덱스는 가장 앞의 원소가 0번, 즉 x[0]입니다. 위의 예시는 원소가 4개이므로 마지막 원소의 인덱스는 3번이 됩니다. 또한, 이 마지막 원소의 인덱스는 -1도 될 수 있습니다. x[-1]은 리스트 x의 마지막 원소입니다. 마지막에서 두번째의 인덱스는 -2가 되겠죠. print(x[-1]) d 범위를 지정할 수도 있습니다. 원소 1번부터 마지막까지를 가져오고 싶다면 아래와 같이 할 수 있습니다. print(x[1:]) ['b','c','d'] 원소 1번부터 2번까지 가져오려면 아래와 같이 합니다. print(x[1:3]) ['b','c'] 위의 예시에서 시작 인덱스(1)에 해당하는 원소는 포함되고 종료 인덱스(3)에 해당하는 원소는 제외됩니다. 따라서 1번부터 2번까지를 지칭하려면 x[1:3] 이런 식이 됩니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Post...

무료 파이썬 호스팅 - pythonanywhere.com

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/pythonanywherecom 당장 사용할 일이 있는 것은 아닌데, 혹시 나중에 필요할 가능성에 대비해서 포스팅해 둡니다. 파이썬 프로그램을 클라우드에서 실행할 수 있는 서비스를 제공하는 곳입니다. 파이썬애니웨어(pythonanywhere)라는 웹사이트인데요. 아래의 링크입니다. https://www.pythonanywhere.com 무료 계정도 만들 수 있는 것 같습니다. 유료는 한달에 5달러부터 시작하네요. 무료 계정은 성능이나 속도도 낮을 것이고 저장 공간도 512MB를 주기 때문에 그리 넉넉한 것은 아니지만, 그래도 무료라는 점을 생각하면 파이썬을 활용해서 소규모로 시험을 할 때 좋을 것 같습니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )