调用百度翻译api批量翻译文本,python脚本实现

ops/2024/9/24 23:07:26/

文章目录

调用百度翻译api批量翻译

要求

  • 申请百度翻译 api_key

实现

import pdb
import openpyxl
import requests
import hashlib
import time# Baidu translation API endpoint
api_url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'
app_id = 'xxx'  # Replace with your actual Baidu App ID
api_key = 'xxx'  # Replace with your actual Baidu API key
salt = '1234xx6'def md5_encrypt(input_string):# 创建MD5对象md5_hash = hashlib.md5()# 将字符串编码为字节对象并更新MD5对象md5_hash.update(input_string.encode('utf-8'))# 获取MD5加密后的十六进制结果return md5_hash.hexdigest()def get_sign(text, salt):sign = app_id + text + salt + api_keyreturn signto = 'jp'  # Replace with the language code of the target language
# Function to translate text using Baidu translation API
def translate_text(text):params = {'q': text,'from': 'zh','to': to,'appid': app_id,  # Replace with your actual Baidu App ID'salt': salt,  # Replace with a random number'sign': md5_encrypt(get_sign(text, salt))  # Replace with your actual sign}response = requests.get(api_url, params=params)# pdb.set_trace()translation = response.json()['trans_result'][0]['dst']return translation# Load the Excel file
workbook = openpyxl.load_workbook('input.xlsx')  # Replace with your actual file name
sheet = workbook.active# 自定义修改需要翻译的excel的column
col_index = 2  # Replace with the column index of the Chinese text in the Excel file
# Assume the Chinese text is in column A and the translated text will be placed in column B
for index,row in enumerate(sheet.iter_rows()):  # Skip header row# pdb.set_trace()# 从第几 row 开始翻译if index > 1:chinese_text = row[col_index].valuetime.sleep(1)translated_text = translate_text(chinese_text)print(f"{index}: {chinese_text} -> {translated_text}")# pdb.set_trace()sheet.cell(row=row[col_index].row, column=col_index+2, value=translated_text)# Save the modified Excel file
workbook.save(f'translated_excel_{to}.xlsx')  # Replace with your desired file name

http://www.ppmy.cn/ops/44760.html

相关文章

PostgreSQL入门教程

PostgreSQL是一种开源的关系型数据库管理系统,它具有高度的可靠性、可扩展性和性能。下面是一个简单的PostgreSQL入门教程,帮助你开始使用这个强大的数据库管理系统。 步骤1:安装PostgreSQL 首先,你需要下载并安装PostgreSQL。你…

Git常用操作

目录 1 初始化2 仓库3 四个区域4 文件状态5 基本概念6 特殊文件7 添加和提交8 分支9 合并分支10 撤销和恢复11 查看状态12 stash13 远程仓库14 GitFlow15 参考 1 初始化 查看版本 git -v配置用户名 git config --global user.name "Zhang Beihai"配置邮箱 git co…

643. 子数组最大平均数 I

给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 示例 1: 输入:nums [1,12,-5,-6,50,3], k 4 输出&#xff…

vue3 使用vant

使用前提: vite创建的vue3项目 vanthttps://vant-ui.github.io/vant/#/zh-CN/home npm i vant 引入样式: main.js import vant/lib/index.css vant封装 import { showLoadingToast,closeToast,showDialog,showConfirmDialog } from vant;export func…

day22二叉树part08 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

**235. 二叉搜索树的最近公共祖先 ** 这里利用上了二叉搜索树的特性&#xff0c;从上到下遍历&#xff0c;最近的公共祖先一定是满足p->val < root->val < q->val的 class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, Tr…

CSS:浮动

▐ 文档流&#xff1a; 由于网页默认是一个二维平面&#xff0c;当我们在网页中一行行摆放标签时&#xff0c;块标签会独占一行&#xff0c;行标签则只占自身大小&#xff0c;这种情况下要实现网页布局就很麻烦了&#xff0c;所以我们就需要通过一些方法来改变这种默认的布局方…

牛客NC236 最大差值【simple 动态规划 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204 思路 不难看出该题可以使用动态规划的方式解题。 在循环数组的过程中&#xff0c;记录截止到当前位置-1的最小值&#xff0c; 然后用当前的值去计算最大的差值。Java代码 im…

贝叶斯算法:机器学习中的“黄金法则”与性能提升之道

&#x1f440;传送门&#x1f440; &#x1f50d;机器学习概述&#x1f340;贝叶斯算法原理&#x1f680;贝叶斯算法的应用✨文本分类✨医疗系统 &#x1f496;贝叶斯算法优化✨贝叶斯算法优化的主要步骤✨贝叶斯算法优化的优点✨贝叶斯算法优化的局限性 &#x1f697;贝叶斯算…