โมเดล python pydantic แบบง่าย (คำใบ้ประเภทและการเติมข้อความอัตโนมัติ) สำหรับ Honkai: Star Rail แยกวิเคราะห์ข้อมูลจาก Mihomo API
URL ของ API: https://api.mihomo.me/sr_info_parsed/{UID}?lang={LANG}
pip install -U git+https://github.com/KT-Yeh/mihomo.git
มีรูปแบบข้อมูลที่แยกวิเคราะห์อยู่สองรูปแบบ:
V1:
URL: https://api.mihomo.me/sr_info_parsed/800333171?lang=en&version=v1
กำลังดึงข้อมูล: ใช้ client.fetch_user_v1(800333171)
แบบจำลองข้อมูล: mihomo.models.v1.StarrailInfoParsedV1
โมเดลทั้งหมดที่กำหนดไว้ในไดเร็กทอรี mihomo/models/v1
V2:
URL: https://api.mihomo.me/sr_info_parsed/800333171?lang=en
กำลังดึงข้อมูล: ใช้ client.fetch_user(800333171)
แบบจำลองข้อมูล: mihomo.models.StarrailInfoParsed
โมเดลทั้งหมดที่กำหนดไว้ในไดเร็กทอรี mihomo/models
หากคุณไม่ต้องการใช้ client.get_icon_url
เพื่อรับ URL ของรูปภาพทุกครั้ง คุณสามารถใช้ client.fetch_user(800333171, replace_icon_name_with_url=True)
เพื่อรับข้อมูลที่แยกวิเคราะห์พร้อม URL ของเนื้อหา
นำเข้า asynciofrom mihomo นำเข้าภาษา, MihomoAPI จาก mihomo.models นำเข้า StarrailInfoParsedfrom mihomo.models.v1 นำเข้า StarrailInfoParsedV1client = MihomoAPI (ภาษา = Language.EN) async def v1 (): ข้อมูล: StarrailInfoParsedV1 = รอ client.fetch_user_v1 (800333171) พิมพ์ (f "ชื่อ : {data.player.name}") พิมพ์(f"ระดับ: {data.player.level}") พิมพ์(f"ลายเซ็น: {data.player.signature}") พิมพ์(f"ความสำเร็จ: {data.player_details .achievements}") พิมพ์(f"จำนวนอักขระ: {data.player_details.Characters}") พิมพ์(f"URL รูปโปรไฟล์: {client.get_icon_url(data.player.icon)}") สำหรับอักขระใน data.Characters: พิมพ์ ("-----------") พิมพ์ (f"ชื่อ: {ตัวละคร.ชื่อ}") พิมพ์(f"ความหายาก: {ตัวละคร.rarity}") พิมพ์(f"ระดับ: {ตัวละคร .level}") พิมพ์(f"Avatar url: {client.get_icon_url(Character.icon)}") พิมพ์(f"URL ดูตัวอย่าง: {client.get_icon_url(Character.preview)}") พิมพ์(f"URL แนวตั้ง: {client.get_icon_url(Character.Portrait)}")async def v2(): ข้อมูล: StarrailInfoParsed = รอ client.fetch_user(800333171, แทนที่_icon_name_with_url=True) พิมพ์ (f"ชื่อ: {data.player.name}") พิมพ์( f"ระดับ: {data.player.level}") พิมพ์(f"ลายเซ็น: {data.player.signature}") พิมพ์(f"URL รูปโปรไฟล์: {data.player.avatar.icon}") สำหรับตัวละครใน data.Characters: พิมพ์("-----------") พิมพ์(f"ชื่อ: {ตัวละคร.ชื่อ}") พิมพ์(f"ความหายาก: {ตัวละคร.rarity}") พิมพ์(f" URL แนวตั้ง: {ตัวละคร.แนวตั้ง}")asyncio.run(v1())asyncio.run(v2())
from mihomo import tools
data = รอ client.fetch_user (800333171) data = tools.remove_duplicate_Character (ข้อมูล)
old_data = await client.fetch_user(800333171) # เปลี่ยนตัวละครในเกมและรอให้ API รีเฟรช # ... new_data = await client.fetch_user(800333171) data = tools.merge_Character_data(new_data, old_data)
ยกตัวอย่างผักดองและ json
นำเข้าดองนำเข้า zlib จาก mihomo นำเข้า MihomoAPI, ภาษา, StarrailInfoParsedclient = MihomoAPI (ภาษา= Language.EN) data = รอ client.fetch_user (800333171) # Savepickle_data = zlib.compress (pickle.dumps (data)) พิมพ์ (len (pickle_data)) json_data = data.json(by_alias=True, Sure_ascii=False)พิมพ์(len(json_data))# Loaddata_from_pickle = Pickle.loads(zlib.decompress(pickle_data))data_from_json = StarrailInfoParsed.parse_raw(json_data)print(type(data_from_pickle))พิมพ์ (ประเภท(data_from_json))