Python等价于php FILTER\u FLAG\u STRIP\u HIGH

2024-06-02 07:24:24 发布

您现在位置:Python中文网/ 问答频道 /正文

使用OCR解析从pysical表单转换而来的大量低质量数据集,并使用PostgreSQL COPY将.csv文件插入psql。有些记录有ASCII字节,导致导入postgres时出错,因为我需要UTF-8 varchar()中的数据,因为我相信使用文本类型列不会产生此错误。你知道吗

DataError: invalid byte sequence for encoding "UTF8": 0xd6 0x53
CONTEXT:  COPY table_name, line 112809

我想在写入csv文件之前过滤所有这些字节。你知道吗

我相信像PHP的FILTER\u FLAG\u STRIP\u HIGH(http://php.net/manual/en/filter.filters.sanitize.php)这样的东西可以工作,因为它可以删除所有高ASCII值>;127。你知道吗

python中有这样的函数吗?你知道吗


Tags: 文件csv数据表单字节postgresql记录ascii
1条回答
网友
1楼 · 发布于 2024-06-02 07:24:24

将字符串编码为ASCII,忽略错误,然后将其解码回字符串。你知道吗

text = "ƒart"
text = text.encode("ascii", "ignore").decode()
print(text)     # art

如果以UTF-8中的字节字符串开始,则只需对其进行解码:

bites = "ƒart".encode("utf8")
text = bites.decode("ascii", "ignore")
print(text)     # art

这特别适用于UTF-8,因为多字节字符总是使用ASCII范围之外的值,所以部分字符永远不会被去除。它可能不适合其他编码。你知道吗

相关问题 更多 >