标签:换行 python int 不同 pre str 不同的 nis spl
一些非常恐怖的接口不但不传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‘]
chr(10)、"\n"、"\\n"、r"\n" 你搞清楚了吗?
标签:换行 python int 不同 pre str 不同的 nis spl
原文地址:https://www.cnblogs.com/luozx207/p/13156129.html