1. 程式人生 > >python3對接聊天機器人API

python3對接聊天機器人API

圖片 數字 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
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 = rhttp://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