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('未查到相关结果,请规范您的输入!')