unicode与字符:什么是“\x10”

2024-10-01 07:48:36 发布

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

我试图理解为什么当我们使用pandas to_csv()时,一个数字31890694878499被输出为“0.\x1031890694899”。这是唯一一个发生在大量数据中的案例。 在使用to_csv()时,我们已经使用了encoding='utf8',通常这会解决一些unicode问题。。。你知道吗

所以,我试图理解什么是“\x10”,这样我就可以知道为什么。。。 由于整个过程都在luigi管道中运行,所以有时luigi会生成奇怪的输出。我在IPython试过同样的东西,同样版本的熊猫,一切都很好。。。。你知道吗


Tags: csvto数据pandas管道过程ipythonunicode
1条回答
网友
1楼 · 发布于 2024-10-01 07:48:36

因为这是可能的答案,即使你的问题没有提供细节:

很可能是管道中的某些内容故意生成以长度为前缀的文本字段,而不是原始的非结构化文本。\x103189069486778499是一个二进制字节,值为16(0x10),后跟16个字符。它前面的0.可能来自以前的输出,或者它使用的任何自定义数据序列化格式的其他部分。你知道吗

这种设计通常是为了提高解析效率;如果在字段之间使用分隔符(例如逗号,如CSV),那么当分隔符出现在实际数据中时,您将无法想出转义或引用分隔符的方法,而解析器必须逐个字符进行有状态扫描,以找出字段的开始和结束位置。对于以长度为前缀的文本,解析器将查找字段长度,并确切地知道要读取多少个字符以使字段变模糊,或者要跳过多少个字符以查找下一个字段,而无需引用或转义,无论字段包含什么。你知道吗

至于要做什么:您必须检查管道中的命令。你的问题没有提供有意义的方法来确定这个问题的原因。你知道吗

相关问题 更多 >