一些非常恐怖的接口不但不传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']