引言

星座运势一直是许多人关注的话题,无论是出于娱乐还是对未来的某种期待,了解自己的星座运势总能带来一丝乐趣。在数字时代,通过编程技术获取星座运势信息变得更加便捷。本文将介绍一个基于 Python 的星座运势查询工具,它能够通过调用外部 API 获取实时的星座运势数据,并以友好的方式展示给用户。该工具主要利用了 Python 的 requests 库,结合了网络请求和用户交互设计,为用户提供了一个简单易用的星座运势查询解决方案。

总体功能概述

星座运势查询工具是一个 Python 脚本,其核心功能是通过调用外部 API 获取指定星座在特定日期的运势信息,并以文本形式展示给用户。它通过 requests 库发送 HTTP 请求到星座运势 API,解析返回的 JSON 数据,并以友好的方式展示结果。此外,工具还通过用户交互设计,允许用户选择星座和日期,并处理用户输入错误。

API 调用与数据获取

星座运势查询工具通过调用外部 API 来获取星座运势数据。以下是 API 调用与数据获取的代码片段及解析:

import requests

def get_info(sign, day):
    base_url = "https://sameer-kumar-aztro-v1.p.rapidapi.com/"
    parameters = {"sign": sign, "day": day}
    headers = {
        'x-rapidapi-host': "sameer-kumar-aztro-v1.p.rapidapi.com",
        'x-rapidapi-key': "YOUR_API_KEY"
    }
    robj = requests.post(base_url, headers=headers, params=parameters)
    return_object = robj.json()
    if robj.status_code == 200:
        res = f'''我们看到您是{sign.capitalize()}星座。{return_object['current_date']}的运势如下:'{return_object["description"]}'\n
您与{return_object["compatibility"]}星座很般配。您的幸运颜色、幸运数字和幸运时间分别是{return_object["color"]}{return_object["lucky_number"]}{return_object["lucky_time"]}。\n
您今天可能会处于'{return_object["mood"]}'的情绪中。'''
        return res
    else:
        return "抱歉!未找到结果。"

在上述代码中,requests.post 方法用于发送 HTTP POST 请求到星座运势 API。parameters 包含了星座和日期的参数,headers 包含了 API 密钥和其他必要的头信息。API 返回的数据以 JSON 格式存储在 return_object 中。如果请求成功(状态码为 200),工具会解析返回的数据并生成友好的文本信息,否则返回错误提示。

用户交互设计

为了使工具易于使用,工具通过命令行交互设计,允许用户选择星座和日期。以下是用户交互设计的代码片段及解析:

def bad_input(container, code):
    print("\n这不是一个有效的输入。")
    yn = input("您是否想退出?(按 y / n) : ")
    if yn == 'y':
        print("\n感谢您的使用!\n")
        return 1
    elif yn == 'n':
        print("\n请输入一个有效的数字。\n")
        return 0
    else:
        print("\n再次输入无效!\n再见。\n")
        return 1

在上述代码中,bad_input 函数用于处理用户输入错误的情况。如果用户输入了无效的选项,工具会提示用户是否退出。如果用户选择退出,工具会结束运行;如果用户选择继续,工具会提示用户重新输入有效的选项。

def main():
    info_zodiac = '''
    欢迎使用星座运势查询工具!\n\n
    请选择您的星座。请输入对应的数字来继续。\n
    1. 白羊座
    2. 金牛座
    3. 双子座
    ...
    输入其他字符退出。\n'''

    info_day = '''
    您想查询哪一天的运势?\n
    1. 昨天
    2. 今天
    3. 明天
    输入其他字符退出。\n'''

    zodiac = {'1': 'aries', '2': 'taurus', '3': 'gemini', ...}
    day = {'1': "yesterday", '2': "today", '3': "tomorrow"}

    print(info_zodiac)
    while True:
        zodiac_code = input("请输入星座代码 : ")
        if not zodiac.get(zodiac_code, 0):
            if bad_input(zodiac, zodiac_code):
                return
            else:
                continue
        break

    print(info_day)
    while True:
        day_code = input("请输入日期代码 : ")
        if not day.get(day_code, 0):
            if bad_input(day, day_code):
                return
            else:
                continue
        break

    result = get_info(zodiac[zodiac_code], day[day_code])
    print(f'\n\n这是您的星座运势预测!\n\n"{result}"\n')

在上述代码中,main 函数负责显示菜单并接收用户输入。用户需要输入星座代码和日期代码,工具会根据输入调用 get_info 函数获取星座运势信息。如果用户输入了无效的代码,工具会调用 bad_input 函数处理错误输入。

数据展示

工具将获取到的星座运势数据以友好的文本形式展示给用户。以下是数据展示的代码片段及解析:

res = f'''我们看到您是{sign.capitalize()}星座。{return_object['current_date']}的运势如下:'{return_object["description"]}'\n
您与{return_object["compatibility"]}星座很般配。您的幸运颜色、幸运数字和幸运时间分别是{return_object["color"]}{return_object["lucky_number"]}{return_object["lucky_time"]}。\n
您今天可能会处于'{return_object["mood"]}'的情绪中。'''
return res

在上述代码中,工具通过格式化字符串将星座运势数据整合成一段友好的文本信息,包括星座名称、日期、运势描述、兼容星座、幸运颜色、幸运数字和幸运时间等信息。

总结

本文介绍了一个基于 Python 的星座运势查询工具,它通过结合 requests 库的网络请求功能和用户交互设计,实现了从外部 API 获取星座运势数据并展示给用户的功能。该工具具有简单易用、功能实用的特点,适用于对星座运势感兴趣的所有用户。通过本文的介绍,读者可以了解到如何利用 Python 相关技术栈实现星座运势查询工具的开发,为娱乐和信息获取提供了有益的参考。

源码获取

完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐