티스토리 뷰
### Create @ 2026.05.27
import pandas as pd
import sys
from dotenv import load_dotenv
FOLDERPATH_COMMONLIBRARIES = "E:/DevData/commonlibs" # for Windows
#FOLDERPATH_COMMONLIBRARIES = "/root/commonlibs" # for Ubuntu
try:
import keyring
folderPath_CommonLibraries = keyring.get_password("BilientService", "CommonLibraries")
if not folderPath_CommonLibraries: folderPath_CommonLibraries = FOLDERPATH_COMMONLIBRARIES
except:
folderPath_CommonLibraries = FOLDERPATH_COMMONLIBRARIES
if folderPath_CommonLibraries not in sys.path:
sys.path.append(folderPath_CommonLibraries)
print("Path appended")
envPath = folderPath_CommonLibraries + "/.env"
load_dotenv(envPath)
from BMessenger import bMessenger
from BExcel import bExcel
from BTime import bTime
def Test01(): # 2026.05.27
from BiliDBEntranceClient import cBiliDbEntranceClient
print("=" * 70)
print("BiliMon265Py dbentrance API Client 통합 테스트")
print("=" * 70)
# 클래스 인스턴스 생성
client = cBiliDbEntranceClient(
url="https://bilimon265.bilientsvc.org/dbentrance",
client_id="BiliMon261",
secret_key="CODE-20260118",
db_name="BM265_W01"
)
# 1. 테이블 생성 테스트
# print("[테스트 1] CreateTable")
# print(client.create_table("BMG00_A4833"))
# 2-1. 단건 데이터 삽입 테스트 (InsertData)
# print("[테스트 2-1] InsertData (insert_data)")
# insert_meta = {"DataType": "Environment", "DataName": "RoomA_Sensor"}
# insert_val = '{"temperature": 25.1, "humidity": 60}'
# print(client.insert_data("BMG00_A4833", insert_val, insert_meta))
# 2-2. 다건 벌크 데이터 삽입 테스트 (InsertData - bulk)
# print("[테스트 2-2] InsertData (insert_datas)")
# bulk_data = [
# {"DataValue1": '{"temperature": 25.4, "humidity": 62}', "DataType": "Environment", "DataName": "RoomA_Sensor"},
# {"DataValue1": '{"temperature": 25.8, "humidity": 65}', "DataType": "Environment", "DataName": "RoomA_Sensor"}
# ]
# print(client.insert_datas("BMG00_A4833", bulk_data))
# 3. 데이터 조회 및 청킹 전체 로드 테스트
try:
all_records = client.fetch_all_data(
table_name="BMG00_A4833",
batch_size=1000,
delay_ms=31
)
print(f"로드 완료! 총 {len(all_records)}개 수집")
dataDF_All = pd.DataFrame(all_records)
dataDF_A0 = dataDF_All[dataDF_All['DataName'].str.startswith("A0:")]
dataDF_A1 = dataDF_All[dataDF_All['DataName'].str.startswith("A1:")]
dataDF_A2 = dataDF_All[dataDF_All['DataName'].str.startswith("A2:")]
dataDF_A3 = dataDF_All[dataDF_All['DataName'].str.startswith("A3:")]
dataDF_A4 = dataDF_All[dataDF_All['DataName'].str.startswith("A4:")]
dataDF_A5 = dataDF_All[dataDF_All['DataName'].str.startswith("A5:")]
dataDF_A6 = dataDF_All[dataDF_All['DataName'].str.startswith("A6:")]
dataDF_A7 = dataDF_All[dataDF_All['DataName'].str.startswith("A7:")]
dataInfo = {"All": dataDF_All}
if not dataDF_A0.empty: dataInfo['A0'] = dataDF_A0
if not dataDF_A1.empty: dataInfo['A1'] = dataDF_A1
if not dataDF_A2.empty: dataInfo['A2'] = dataDF_A2
if not dataDF_A3.empty: dataInfo['A3'] = dataDF_A3
if not dataDF_A4.empty: dataInfo['A4'] = dataDF_A4
if not dataDF_A5.empty: dataInfo['A5'] = dataDF_A5
if not dataDF_A6.empty: dataInfo['A6'] = dataDF_A6
if not dataDF_A7.empty: dataInfo['A7'] = dataDF_A7
outFile = "./Test04_4833.xlsx"
bExcel.WriteSheetInfos(outFile, dataInfo)
except Exception as e:
print(f"오류 발생: {e}")
try:
all_records = client.fetch_all_data(
table_name="BMG00_A5101",
batch_size=1000,
delay_ms=31
)
print(f"로드 완료! 총 {len(all_records)}개 수집")
dataDF_All = pd.DataFrame(all_records)
dataDF_A0 = dataDF_All[dataDF_All['DataName'].str.startswith("A0:")]
dataDF_A1 = dataDF_All[dataDF_All['DataName'].str.startswith("A1:")]
dataDF_A2 = dataDF_All[dataDF_All['DataName'].str.startswith("A2:")]
dataDF_A3 = dataDF_All[dataDF_All['DataName'].str.startswith("A3:")]
dataDF_A4 = dataDF_All[dataDF_All['DataName'].str.startswith("A4:")]
dataDF_A5 = dataDF_All[dataDF_All['DataName'].str.startswith("A5:")]
dataDF_A6 = dataDF_All[dataDF_All['DataName'].str.startswith("A6:")]
dataDF_A7 = dataDF_All[dataDF_All['DataName'].str.startswith("A7:")]
dataInfo = {"All": dataDF_All}
if not dataDF_A0.empty: dataInfo['A0'] = dataDF_A0
if not dataDF_A1.empty: dataInfo['A1'] = dataDF_A1
if not dataDF_A2.empty: dataInfo['A2'] = dataDF_A2
if not dataDF_A3.empty: dataInfo['A3'] = dataDF_A3
if not dataDF_A4.empty: dataInfo['A4'] = dataDF_A4
if not dataDF_A5.empty: dataInfo['A5'] = dataDF_A5
if not dataDF_A6.empty: dataInfo['A6'] = dataDF_A6
if not dataDF_A7.empty: dataInfo['A7'] = dataDF_A7
outFile = "./Test04_5101.xlsx"
bExcel.WriteSheetInfos(outFile, dataInfo)
except Exception as e:
print(f"오류 발생: {e}")
# ==========================================
# 모듈 실행 예시
# ==========================================
if __name__ == "__main__":
Test01()
반응형
'SWDesk' 카테고리의 다른 글
| 우분투에서 공통 라이브러리 지정 방법 (0) | 2026.02.01 |
|---|---|
| 우분투(Ubuntu)에서 keyring 사용 방법 (0) | 2026.01.26 |
| [Python] Selenium을 대신할 Playwright 예제 코드 (0) | 2025.12.31 |
| [Python] List 내 정렬 (0) | 2025.12.18 |
| [Python] dovenv 라이브러리 활용하기 (0) | 2025.12.13 |
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Video
- 티스토리챌린지
- BiliChild
- Innovations
- image
- 치매
- 빌리칠드
- 심심풀이
- bilient
- arduino
- Hurdles
- ServantClock
- 혁신
- 전압
- Innovations&Hurdles
- Decorator
- 절연형
- BSC
- 혁신과허들
- 오블완
- 둎
- 빌리언트
- 치매방지
- 아두이노
- 심심풀이치매방지기
- 전류
- 허들
- Innovation&Hurdles
- 배프
- DYOV
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
글 보관함

