Python 脚本:通过百度翻译接口获取并格式化单词翻译结果

wzzyhg 80 0

这段 Python 代码使用 requests 库向百度翻译的接口发送 POST 请求,并获取用户输入单词的翻译结果。通过解析返回的 JSON 数据,代码提取出翻译的关键词(k)及其对应的翻译(v),然后以格式化的方式输出每个词条的翻译。代码有效地移除了响应中的非翻译数据(如 errno 和 logid),并使用字典存储和显示翻译结果。最终,程序展示了输入单词的所有翻译,提供清晰、易读的输出格式。

源码

import requests

url = "https://fanyi.baidu.com/sug"
a = input("请输入:")
dat = {
    "kw": a
}

# 发送POST请求
response = requests.post(url, data=dat)

# 将响应转换为JSON格式
json_re = response.json()
dic={}
json_re.pop("errno",None)
json_re.pop("logid",None)
# 遍历字典,保存结果
for item in json_re['data']:
    # 'k' 是输入的单词,'v' 是翻译结果
    dic[item['k']] = item['v']
    # 打印输出结果
for a,b in dic.items():
    print(f"单词{a}\n翻译{b}")

这段代码的功能是通过百度翻译接口获取用户输入的单词的翻译,并格式化输出每个翻译结果。下面是代码的详细总结:

代码总结

1. 导入请求库:

import requests

使用 requests 库来发送 HTTP 请求。

2. 设置请求 URL 和输入单词:

url = "https://fanyi.baidu.com/sug"
a = input("请输入:")
dat = {"kw": a}

• url 是百度翻译的接口地址。
• a 是用户输入的单词,通过 input() 获取。
• dat 是一个字典,用来传递用户输入的单词 kw。

3. 发送 POST 请求:

response = requests.post(url, data=dat)

发送一个 POST 请求,携带用户输入的单词 kw,请求返回翻译结果。

4. 处理 JSON 响应:

json_re = response.json()

将响应的内容转换为 JSON 格式,以便进一步处理。

5. 移除不必要的字段:

json_re.pop("errno", None)
json_re.pop("logid", None)

• 移除返回数据中的 errno 和 logid 字段,因为这些字段与翻译数据无关。

6. 遍历翻译数据并存储到字典中:

dic = {}
for item in json_re['data']:
    dic[item['k']] = item['v']

• 遍历 json_re['data'] 列表,列表中的每个 item 包含了一个翻译结果。
• item['k'] 是输入的单词,item['v'] 是翻译结果。
• 通过 dic[item['k']] = item['v'] 将单词和对应的翻译存储到字典 dic 中。

7. 打印翻译结果:

for a, b in dic.items():
    print(f"单词{a}\n翻译{b}")

• 遍历字典 dic,将每个单词及其翻译打印出来。
• 每次打印一个单词和其翻译,f"单词{a}\n翻译{b}" 用来格式化输出,并且通过 \n 实现换行。

总结功能

• 该程序通过百度翻译接口查询用户输入单词的翻译。
• 将返回的翻译结果(包括多个词条)存储在字典中,并按格式输出。
• 只输出单词和翻译,不包括其他的元数据。

示例输出

如果用户输入apple,可能的输出是:

请输入:`apple`
单词Apple
翻译n. 苹果公司,原称苹果电脑公司
单词apple
翻译n. 苹果; 苹果公司; 苹果树
单词APPLE
翻译n. 苹果
单词apples
翻译n. 苹果,苹果树( apple的名词复数 ); [美国口语]棒球; [美国英语][保龄球]坏球;
单词Apples
翻译[地名] [瑞士] 阿普勒

每个单词和翻译被分为两行输出,方便查看。

发表评论 取消回复
表情 图片 链接 代码

分享