python3对接聊天机器人API
Posted BH8ANK
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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循环。。。这一点待明天研究研究
1 #python 3.6 2 #!/usr/bin/env python 3 # -*- coding:utf-8 -*- 4 __author__ = \'BH8ANK\' 5 6 7 \'\'\' 8 详情见http://api.qingyunke.com/ 9 智能机器人API接口说明 10 支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天 11 接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词 12 key 固定参数free 13 appid 设置为0,表示智能识别,可忽略此参数 14 msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交 15 返回结果:{"result":0,"content":"内容"} 16 result 状态,0表示正常,其它数字表示错误 17 content 信息内容 18 19 \'\'\' 20 import urllib.request 21 import time 22 import ssl 23 import json 24 import string 25 26 27 while True: 28 29 # def talk(): 30 target = r\'http://api.qingyunke.com/api.php?key=free&appid=0&msg=\' 31 print("=======================") 32 keyword = input("想聊点儿什么:") 33 if keyword == "exit": 34 print("不聊算了,拜拜") 35 break 36 tmp = target + keyword 37 url = urllib.parse.quote(tmp, safe=string.printable) 38 page = urllib.request.urlopen(url) 39 #print(url) 40 41 # url = urllib.parse.quote(tmp,safe=string.printable) 42 # url = url1.read().decode("utf-8") 43 html = page.read().decode("utf-8") 44 # print(html) 45 # print(str(page)) 46 47 # page = urllib.request.urlopen(url) 48 # html = page.read() 49 50 # print(html) 51 res = json.loads(html)#json转为dict,json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型 52 # print(res) 53 #return res 54 # res = json.loads(html) 55 # b = json.dumps(res, ensure_ascii=False, indent=4) 56 # print(b) 57 # dict_talk = json.loads(b) 58 # print(dict_talk) 59 # return dict_talk 60 # a = res 61 print(res[\'content\']) 62 63 # if __name__ == "__main__": 64 # while True: 65 # a = talk() 66 # print(a[\'content\']) 67 # print(a) 68 # answer = urllib.parse.unquote(a) 69 # answer = json.dumps(answer, ensure_ascii=False, indent=4) 70 # res = json.loads(answer) 71 # print(answer) 72 # print()
这机器人,实在是太没节操了。。
以上是关于python3对接聊天机器人API的主要内容,如果未能解决你的问题,请参考以下文章