
增強API安全性:降低訪問控制失效的風險
跨國企業的客服系統集成翻譯API,客服代表能夠實時翻譯客戶的詢問,提供母語服務,提升客戶滿意度和問題解決效率。
冪簡集成是國內領先的API集成管理平臺,專注于為開發者提供全面、高效、易用的API集成解決方案。冪簡API平臺提供了多種維度發現API的功能:通過關鍵詞搜索免費翻譯API、從 API Hub 分類瀏覽API、從 開放平臺 分類瀏覽企業間接尋找API等。
openpyxl
:用于處理 Excel 文件。urllib.parse
:用于 URL 編碼。requests
:用于發送 HTTP 請求。json
:用于處理 JSON 數據。concurrent.futures
:用于實現多線程。BATCH_SIZE = 100
:指定每次處理的批量大小為 100 條數據。THREAD_COUNT = 10
:指定線程池中的線程數量為 10 個。translate_text
函數:None
。process_batch
函數:sheet
以及批處理的起始行 start
和結束行 end
。translate_text
函數進行翻譯。main
函數:openpyxl
加載工作簿并獲取活動工作表。futures
列表。futures
列表中。if __name__ == "__main__"
條件下執行 main
函數,啟動整個程序的運行。import openpyxl
import urllib.parse
import requests
import json
import concurrent.futures
BATCH_SIZE = 100 # 每次處理的批量大小
THREAD_COUNT = 10 # 線程池中的線程數量
def translate_text(text):
encoded_text = urllib.parse.quote(text.replace(" ", " ").strip())
api_url = f"https://api.pearktrue.cn/api/translate/?text={encoded_text}&type=AUTO"
response = requests.get(api_url)
if response.status_code == 200:
root_node = json.loads(response.text)
return root_node['data']['translate']
else:
return None
def process_batch(sheet, start, end):
for row_index in range(start, end):
row = sheet[row_index]
desc_cell = row[0]
if desc_cell.value:
translated_text = translate_text(desc_cell.value)
if translated_text:
sheet.cell(row=row_index, column=2, value=translated_text)
print(f"讀取到第 {row_index} 條記錄")
print(f"寫入到第 {row_index} 條記錄")
def main():
excel_file_path = "/Users/larryzheng/Desktop/blog.xlsx"
workbook = openpyxl.load_workbook(excel_file_path)
sheet = workbook.active
row_count = sheet.max_row
batch_count = (row_count + BATCH_SIZE - 1) // BATCH_SIZE
with concurrent.futures.ThreadPoolExecutor(max_workers=THREAD_COUNT) as executor:
futures = []
for batch in range(batch_count):
start = batch * BATCH_SIZE
end = min(start + BATCH_SIZE, row_count)
futures.append(executor.submit(process_batch, sheet, start, end))
# 等待所有任務完成
for future in concurrent.futures.as_completed(futures):
try:
future.result()
except Exception as e:
print(e)
workbook.save(excel_file_path)
workbook.close()
if __name__ == "__main__":
main()