使用百度翻译批量处理翻译excel表格数据,填入你的appid和appkey可直接使用

使用前,先确保你有批量要翻译的excel列表,因为是直接覆盖原有列的数据,所以需要先复制一份文件。然后pycharm中更换appid和appkey、以及更换数据的列(是哪一列),即可直接使用。

import time
import requests
import random
from hashlib import md5
from openpyxl import Workbook, load_workbook


class Baidufanyi:

    def __init__(self):
        # Set your own appid/appkey.
        self.list_result = []
        self.appid = '你的appid'
        self.appkey = '你的appkey'

        # For list of language codes, please refer to `https://api.fanyi.baidu.com/doc/21`
        self.from_lang = 'zh'
        self.to_lang = 'en'

        endpoint = 'http://api.fanyi.baidu.com'
        path = '/api/trans/vip/translate'
        self.url = endpoint + path

    # 处理拼接字符串的MD5加密
    def make_md5(self, encoding='utf-8'):
        self.salt = random.randint(32768, 65536)
        s = (self.appid + self.query + str(self.salt) + self.appkey)
        self.sign = md5(s.encode(encoding)).hexdigest()

    def requests(self):
        # 构造headers和参数params数据
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        payload = {'appid': self.appid, 'q': self.query, 'from': self.from_lang, 'to': self.to_lang, 'salt': self.salt,
                   'sign': self.sign}

        # 发送请求
        r = requests.post(self.url, params=payload, headers=headers)
        result = r.json()
        result_final = result['trans_result'][0]['dst']
        return result_final

    # 从表格中提取数据并写入翻译后的数据
    def get_writein_data(self):
        # 加载工作簿
        wb = load_workbook('你需要翻译的数据的表格.xlsx')
        ws = wb.active
        ### ‘C’替换为你想翻译的列
        for cell_read in ws['C']:
            try:
                self.query = cell_read.value
                print(self.query)
                self.make_md5()
                self.requests()
                cell_read.value = self.requests()
                time.sleep(1)
                wb.save('你需要翻译的数据的表格.xlsx')
            except:
                time.sleep(60)
        wb.save('你需要翻译的数据的表格.xlsx')


# 创建实例,执行程序
if __name__ == "__main__":
    result_trans = Baidufanyi()
    result_trans.get_writein_data()
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
下面是一个使用openpyxl和百度翻译API的Python脚本,可以读取Excel文档的中文内容并将其转换成英语,然后保存到新的Excel文档中。 ```python import openpyxl import requests # 百度翻译API相关参数 APP_ID = '你的APP_ID' SECRET_KEY = '你的SECRET_KEY' API_URL = 'http://api.fanyi.baidu.com/api/trans/vip/translate' # 读取Excel文档 wb = openpyxl.load_workbook('中文文档.xlsx') sheet = wb.active # 遍历每个单元格,进行翻译 for row in sheet.rows: for cell in row: # 如果单元格内容为空,则跳过 if not cell.value: continue # 如果单元格内容不是中文,则跳过 if not isinstance(cell.value, str) or not all('\u4e00' <= c <= '\u9fff' for c in cell.value): continue # 调用百度翻译API进行翻译 params = { 'q': cell.value, 'from': 'zh', 'to': 'en', 'appid': APP_ID, 'salt': '1234567890' } sign = f"{APP_ID}{cell.value}{params['salt']}{SECRET_KEY}" params['sign'] = hashlib.md5(sign.encode()).hexdigest() resp = requests.get(API_URL, params=params) result = resp.json() # 将翻译结果写入单元格 cell.value = result['trans_result'][0]['dst'] # 保存新的Excel文档 wb.save('英文文档.xlsx') ``` 需要注意的是,这个脚本使用的是百度翻译API的免费版,每个月有一定的免费次数限制。如果需要更高的翻译速度和更大的翻译量,请使用百度翻译API的付费版或其他翻译API。另外,为了保护个人信息安全,APP_ID和SECRET_KEY应该存放在环境变量或其他安全的位置,并在脚本中使用os.environ等方法读取。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爬吧爬吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值