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

时间:2019-10-08 01:19:34

标签: python pandas unicode luigi

我试图理解为什么当我们使用熊猫to_csv()时,数字3189069486778499被输出为“ 0. \ x103189069486778499”。这是在大量数据中发生的唯一情况。 使用to_csv()时,我们已经使用过encoding='utf8',通常可以解决一些unicode问题...

所以,我正试图了解什么是“ \ x10” ,以便我可能知道为什么... 由于整个过程都在luigi管道中运行,因此luigi有时会产生奇怪的输出。我在IPython中尝试了同样的事情,熊猫的版本相同,并且一切正常。...

1 个答案:

答案 0 :(得分:0)

因为这是可能的答案,即使您的问题中未提供详细信息,也是如此:

您的管道中很可能有意生成带有长度前缀文本的字段,而不是原始的非结构化文本。 \x103189069486778499是一个二进制字节,值16(0x10),后跟16个字符。之前的0.可能来自先前的输出,也可能来自其使用的任何自定义数据序列化格式的其他部分。

此设计通常旨在使解析更加有效;如果您在字段之间使用定界符(例如,逗号,例如CSV),则您会想出在实际数据中出现转义或引用定界符的方法,并且解析器必须逐个字符地进行扫描,弄清楚字段开始和结束的位置。带有长度前缀文本的解析器可以找到一个字段长度,并且准确知道要读取多少字符以吸引该字段,或者可以跳过多少个字符来查找下一个字段,而无论字段包含什么内容,都无需引用或转义。

关于执行此操作的方法:您将必须检查管道中的命令。您的问题没有提供有意义的方法来确定此问题的原因。