1 問題描述
利用百度翻譯的接口,製作一箇中譯英翻譯小工具。
2 解題提示
在百度翻譯之中,輸入單詞,此時接口,找到你需要的接口信息
3 評分標準
- 找到翻譯的HTTP接口規則 10分
- 得到服務器響應回來的結果數據,並做好處理,得到翻譯的結果 10分
- 代碼註釋,規範10分
4 要點解析
4.1 接口信息的查找
4.2 json數據類型
json模塊提供了四個功能:dumps
、dump
、loads
、load
,用於字符串 和 python數據類型間進行轉換
dump和load帶有寫入和讀取的操作【處理的是json文件】,dumps和loads【處理的是字符串】
import json
# dumps
# 定義數據
data_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# 轉化爲json類型
json1 = json.dumps(data_dict, indent=4)
print(json1)
# loads
data_str = '{"key1": "value1", "key2": "value2", "key3": "value3"}'
# 轉化爲Python可識別類型
data_dict = json.loads(data_str)
print(data_dict)
# dump
data = {'str3': 'xyz', 'str2': 'efgh', 'str1': 'abcd'}
# 打開文件
f = open('data.txt','w',encoding='utf-8')
# 將data轉換爲字符串,並寫入
json.dump(data,f,indent=4)
# load
# 打開文件
with open('data.txt', 'r') as f:
# 讀取,並把字符類型轉換爲 Python可識別類型
d2 = json.load(f)
print(d2)
5 代碼實現
import urllib.request as ur
import urllib.parse as up
import json
# 輸入你要翻譯的單詞
kw=(input('請輸入翻譯的內容:'))
data={
'kw':kw
}
#將data作爲URL查詢字符串
data_url=up.urlencode(data)
#封裝Request對象
request = ur.Request(
url = 'https://fanyi.baidu.com/sug',
data = data_url.encode('utf-8')#把url編碼轉成字節
)
# 獲得查詢結果
response = ur.urlopen(request).read()
#json對象轉化爲python對象
ret = json.loads(response)
print(ret)
# 增加代碼健碩性
try:
for i in ret['data']:
keys = i['k']
values = i['v']
print(keys,values)
except:
print('未查到相關結果,請規範您的輸入!')