python3对接聊天机器人API

详情见http://api.qingyunke.com/
智能机器人API接口说明
支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天
接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词
     key 固定参数free
     appid 设置为0,表示智能识别,可忽略此参数
     msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交
返回结果:{"result":0,"content":"内容"}
     result 状态,0表示正常,其它数字表示错误
     content 信息内容 

代码如下,主要需要用到的知识点,就是json到dict的转换,这个地方很容易忽视,导致无法取出字典里的value。
代码中用while做了一个循环,主要是考虑可以找机器人聊聊天。其实更好的方式应该是def talk(),然后使用while True:talk()。
但最终没有这样做的原因是,因为不知道怎么在talk()中使用break可以跳出while循环。。。这一点待明天研究研究
'''
详情见http://api.qingyunke.com/
智能机器人API接口说明
支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天
接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词
     key 固定参数free
     appid 设置为0,表示智能识别,可忽略此参数
     msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交
返回结果:{"result":0,"content":"内容"}
     result 状态,0表示正常,其它数字表示错误
     content 信息内容 

想要学习Python?Python学习交流群:1004391443满足你的需求,资料都已经上传群文件,可以自行下载!
'''
import urllib.request
import time
import ssl
import json
import string


while True:

    # def talk():
    target = r'http://api.qingyunke.com/api.php?key=free&appid=0&msg='
    print("=======================")
    keyword = input("想聊点儿什么:")
    if keyword == "exit":
        print("不聊算了,拜拜")
        break
    tmp = target + keyword
    url = urllib.parse.quote(tmp, safe=string.printable)
    page = urllib.request.urlopen(url)
    #print(url)

    # url = urllib.parse.quote(tmp,safe=string.printable)
    # url = url1.read().decode("utf-8")
    html = page.read().decode("utf-8")
    # print(html)
    # print(str(page))

    # page = urllib.request.urlopen(url)
    # html = page.read()

    # print(html)
    res = json.loads(html)#json转为dict,json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型
    # print(res)
    #return res
    # res = json.loads(html)
    # b = json.dumps(res, ensure_ascii=False, indent=4)
    # print(b)
    # dict_talk = json.loads(b)
    # print(dict_talk)
    # return dict_talk
    # a = res
    print(res['content'])

# if __name__ == "__main__":
#     while True:
#         a = talk()
#         print(a['content'])
# print(a)
# answer = urllib.parse.unquote(a)
# answer = json.dumps(answer, ensure_ascii=False, indent=4)
# res = json.loads(answer)
# print(answer)
    # print()

这机器人,实在是太没节操了。。

猜你喜欢

转载自blog.csdn.net/fei347795790/article/details/89890974