You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从MSSQL读取的字符串在DeepL Python库中报错'text must not be empty'如何解决?

解决从MSSQL获取文本传入DeepL触发空文本错误的方案

1. 排查数据库字段是否为空或仅含空白字符

即便你确认变量类型是字符串,数据库中moretext字段仍可能是空字符串(""),或是全由空格、制表符、换行符这类空白字符组成——DeepL的translate_text会将这类内容判定为空文本抛出错误。

解决代码:

query = ("SELECT sometextstring, moretext FROM tablexy ")
data = cursor.execute(query)
for i in data:
        text = i[1].strip()  # 移除文本首尾的空白字符
        if not text:  # 判定清理后是否为空
            print(f"跳过空文本记录:{i[0]}")
            continue
        result = translator.translate_text(text, target_lang="EN-US")
        print(result)

2. 清理字符串中的不可见控制字符

部分数据库字段可能包含不可见控制字符(比如NULL字符\x00、换行符\n等),这类字符会让字符串表面非空,但仍会触发DeepL的空文本检测。

解决代码:

import string

def clean_invalid_chars(text):
    # 仅保留可打印字符,移除所有控制字符
    return ''.join(filter(lambda x: x in string.printable, text)).strip()

query = ("SELECT sometextstring, moretext FROM tablexy ")
data = cursor.execute(query)
for i in data:
        raw_text = i[1]
        text = clean_invalid_chars(raw_text)
        if not text:
            print(f"跳过无效文本记录:{i[0]}")
            continue
        result = translator.translate_text(text, target_lang="EN-US")
        print(result)

3. 确认查询结果的索引是否正确

你通过i[1]获取moretext字段,要确保SELECT sometextstring, moretext的字段顺序无误——索引0对应sometextstring,索引1对应moretext,若顺序搞反,可能取到了预期外的空字段。

可以通过打印原始文本排查:

query = ("SELECT sometextstring, moretext FROM tablexy ")
data = cursor.execute(query)
for i in data:
        print(f"原始文本内容:{repr(i[1])}")  # repr会显示转义字符,便于发现隐藏问题
        text = i[1].strip()
        if not text:
            continue
        result = translator.translate_text(text, target_lang="EN-US")
        print(result)

4. 处理数据库中的NULL值

若数据库中moretext字段为NULL,Python游标返回的是None值。即便你认为类型是字符串,仍可能存在部分记录为None的情况,需要提前判断:

query = ("SELECT sometextstring, moretext FROM tablexy ")
data = cursor.execute(query)
for i in data:
        text = i[1]
        if text is None:
            print(f"跳过NULL值记录:{i[0]}")
            continue
        text = text.strip()
        if not text:
            continue
        result = translator.translate_text(text, target_lang="EN-US")
        print(result)

内容的提问来源于stack exchange,提问作者Deton8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:00:29