Python3:分割编码字符串

Python3:分割编码字符串,python,python-3.x,string,split,Python,Python 3.x,String,Split,我有 其中包括以下要素: b'path\n/sync/u/0/i/bv\nurl_ids_md5\n\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0\nargcount\n2\nstart_time\n1605232804\narg.c\n10\narg.hl\n11\n' 我正试图将其分解为一个列表,其中包含以“\n”分隔的元素。但是,出现了几种情况: 让我们把有问题的字符串称为s 如果我天真地执行s.split(“\n”),那当然行不通,我会遇到

我有

其中包括以下要素:

b'path\n/sync/u/0/i/bv\nurl_ids_md5\n\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0\nargcount\n2\nstart_time\n1605232804\narg.c\n10\narg.hl\n11\n'
我正试图将其分解为一个列表,其中包含以“\n”分隔的元素。但是,出现了几种情况:

让我们把有问题的字符串称为s

如果我天真地执行s.split(“\n”),那当然行不通,我会遇到以下错误:

 1) "path"
 2) "/sync/u/0/i/bv"
 3) "url_ids_md5"
 4) "\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0"
 5) "argcount"
 6) "2"
 7) "start_time"
 8) "1605232804"
 9) "arg.c"
10) "10"
11) "arg.hl"
12) "11"
因此,在尝试拆分之前,我先对其进行解码:s.decode().split(“\n”)。问题是我有一个md5编码的组件作为s的一部分,它与decode()的默认utf-8解码不兼容

接下来(而不是decode())我尝试将str()应用于s。我得到以下信息:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd9 in position 32: invalid continuation byte
b'path\n/sync/u/0/i/bv\nurl_ids_md5\n\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0\nargcount\n2\nstart_time\n1605232804\narg.c\n10\narg.hl\n11\n'
["b'path\\n/sync/u/0/i/bv\\nurl_ids_md5\\n\\xd9\\xdd\\x80fF>(\\xf4?\\xcc\\x86c|\\xd2\\xd3\\xf0\\nargcount\\n2\\nstart_time\\n1605232804\\narg.c\\n10\\narg.hl\\n11\\n'"]
(注意,它仍然是utf-8编码的(我认为),前面的b'就证明了这一点。) 有趣的是,在上面执行.split(“\n”)的结果如下:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd9 in position 32: invalid continuation byte
b'path\n/sync/u/0/i/bv\nurl_ids_md5\n\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0\nargcount\n2\nstart_time\n1605232804\narg.c\n10\narg.hl\n11\n'
["b'path\\n/sync/u/0/i/bv\\nurl_ids_md5\\n\\xd9\\xdd\\x80fF>(\\xf4?\\xcc\\x86c|\\xd2\\xd3\\xf0\\nargcount\\n2\\nstart_time\\n1605232804\\narg.c\\n10\\narg.hl\\n11\\n'"]
这本身对我来说毫无意义。(但请注意,它允许我现在执行.split(),这与我最初的字符串/第一个示例不同)


如何正确拆分字符串?

请尝试执行以下操作:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd9 in position 32: invalid continuation byte
b'path\n/sync/u/0/i/bv\nurl_ids_md5\n\xd9\xdd\x80fF>(\xf4?\xcc\x86c|\xd2\xd3\xf0\nargcount\n2\nstart_time\n1605232804\narg.c\n10\narg.hl\n11\n'
["b'path\\n/sync/u/0/i/bv\\nurl_ids_md5\\n\\xd9\\xdd\\x80fF>(\\xf4?\\xcc\\x86c|\\xd2\\xd3\\xf0\\nargcount\\n2\\nstart_time\\n1605232804\\narg.c\\n10\\narg.hl\\n11\\n'"]

祝你好运

好主意!谢谢