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()

 

這機器人,實在是太沒節操了。。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM