📜  使用Python查找用户提供的主题的笑话(1)

📅  最后修改于: 2023-12-03 15:22:20.354000             🧑  作者: Mango

使用Python查找用户提供的主题的笑话

介绍

本文将介绍如何使用Python编写程序,查找用户提供的主题的笑话,以帮助程序员快速获取笑料。

环境
  • Python 3.x
准备工作

首先,我们需要一个开放的笑话API,因此建议使用“笑话大全”(https://www.juhe.cn/docs/api/id/95)提供的API接口。

在使用该接口之前,需要在其网站上注册账号,并获取一个appkey,此处不再赘述。

获取笑话

在得到appkey后,我们可以使用Python编写程序,通过接口获取笑话。

import requests

def get_joke(topic):
    url = 'http://v.juhe.cn/joke/content/list.php'
    params = {
        'sort': 'desc',
        'page': '1',
        'pagesize': '20',
        'time': '1418816972',
        'key': 'your_appkey',
        'dtype': 'json',
        'text': topic
    }
    response = requests.get(url, params=params)
    results = response.json().get('result')
    if results:
        return results
    else:
        return None

其中,topic为用户提供的笑话主题,通过查询该主题关键词,接口将返回相关的笑话内容。代码片段如下:

```python
import requests

def get_joke(topic):
    url = 'http://v.juhe.cn/joke/content/list.php'
    params = {
        'sort': 'desc',
        'page': '1',
        'pagesize': '20',
        'time': '1418816972',
        'key': 'your_appkey',
        'dtype': 'json',
        'text': topic
    }
    response = requests.get(url, params=params)
    results = response.json().get('result')
    if results:
        return results
    else:
        return None

## 返回结果

通过调用`get_joke`函数,可以获取笑话内容,将其格式化成markdown表格,并返回结果。

```python
def format_results(results):
    if not results:
        return '没有找到相关笑话。'
    else:
        header = '| 笑话标题 | 笑话内容 |\n| --- | --- |\n'
        body = ''
        for joke in results:
            body += f"|{joke['title']}|{joke['content']}|\n"
        return header + body

代码片段如下:

```python
def format_results(results):
    if not results:
        return '没有找到相关笑话。'
    else:
        header = '| 笑话标题 | 笑话内容 |\n| --- | --- |\n'
        body = ''
        for joke in results:
            body += f"|{joke['title']}|{joke['content']}|\n"
        return header + body

## 完整程序

```python
import requests

def get_joke(topic):
    url = 'http://v.juhe.cn/joke/content/list.php'
    params = {
        'sort': 'desc',
        'page': '1',
        'pagesize': '20',
        'time': '1418816972',
        'key': 'your_appkey',
        'dtype': 'json',
        'text': topic
    }
    response = requests.get(url, params=params)
    results = response.json().get('result')
    if results:
        return results
    else:
        return None

def format_results(results):
    if not results:
        return '没有找到相关笑话。'
    else:
        header = '| 笑话标题 | 笑话内容 |\n| --- | --- |\n'
        body = ''
        for joke in results:
            body += f"|{joke['title']}|{joke['content']}|\n"
        return header + body

if __name__ == '__main__':
    topic = input('请输入笑话主题:')
    results = get_joke(topic)
    print(format_results(results))
总结

通过调用API接口,使用Python编写程序可以快速获取笑话。此外,类似的API还有许多,可以根据需求选择合适的接口。