python3对接聊天机器人API

时间:2021-11-28 18:36:16
详情见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