chr(10)、""、"\n"、r"" 你搞清楚了吗?

一些非常恐怖的接口不但不传json,还搞些奇奇怪怪的分隔符,比如:

每条记录用 Chr(10)分隔,每列用\n 分隔

chr(10)不就是换行符"\n"吗?这两者有什么区别?

实际拿到数据,print出来是这样的:

Avalue1\nAvalue2\nAvalue3 Bvalue1\nBvalue2\nBvalue3

在print()函数中,chr(10)会变成换行符,而r"\n"会变成\n

$ a = f"this\\nis{chr(10)}a\ntest\\nstring" $ print(a) this\nis a test\nstring

因此,这个接口是用换行符来分割每条记录的,但是每列是用"\n"这两个字符来分割的,在python里面应写作r"\n"或者"\\n"(忽略转义)

这两者是不同的东西

总结:chr(10)与"\n"是同一种东西,"\\n"与r"\n"是同一种东西

>>> chr(10)=="\n" True >>> "\\n"=="\n" False >>> "\\n"==r"\n" True a = f"this\\nis{chr(10)}a\ntest\\nstring" print(a.split(chr(10))) # ['this\\nis', 'a', 'test\\nstring'] print(a.split('\n')) # ['this\\nis', 'a', 'test\\nstring'] print(a.split('\\n')) # ['this', 'is\na\ntest', 'string'] print(a.split(r'\n')) # ['this', 'is\na\ntest', 'string']

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgjxp.html