python3對接聊天機器人API
阿新 • • 發佈:2018-04-27
圖片 數字 json 函數返回 ensure dumps targe 錯誤 類型
詳情見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 13appid 設置為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