Вставка одного обратного слеша в строку или список Python - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть объект байтов

b "'\ x91 \ x84 \ xa4 \ x74 \ x69 \ x6d \ x65 \ x93 \ xcb \ x42 \ x2b \ x5b \ x8b \ xb7 \ x00\ x00 \ x00 \ XCB \ x42 \ x2b \ X5b \ x8b \ xb7 \ x00 \ x05 \ x1f \ XCB \ x42 \ x2b \ X5b \ x8b \ xb7 \ x00 \ x0a \ x3e \ xa4 \ x76 \ x61 \ x72 \ x30\ x93 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33 \ x33 \ x33 \ x33 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33 \ x33 \ x33 \ x33 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33\ x33 \ x33 \ x33 \ xa4 \ x76 \ x61 \ x72 \ x31 \ x93 \ XCB \ XFF \ XF8 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XCB \ x40 \ x34 \ x19 \ x99 \ x99 \ x99\ x99 \ X9a \ XCB \ x40 \ x34 \ x19 \ x99 \ x99 \ x99 \ x99 \ X9a \ xa4 \ x76 \ x61 \ x72 \ x32 \ x93 \ XCB \ XFF \ XF8 \ x00 \ x00 \ x00 \ x00 \ x00\ x00 \ xcb \ xff \ xf8 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ xcb \ x40 \ x3e \ x19 \ x99 \ x99 \ x99 \ x99 \ x9a '"

Iхотите заменить \\ на \ для дальнейшей обработки в библиотеке pandas msgpack.Я пытался заменить таким образом, и не мог найти ответ, хотя та же проблема упоминалась во многих постах.

1010 * Я конвертировали его в строку:

x91x84xa4x74x69x6dx65x93xcbx42x2bx5bx8bxb7x00x00x00xcbx42x2bx5bx8bxb7x00x05x1fxcbx42x2bx5bx8bxb7x00x0ax3exa4x76x61x72x30x93xcbx40x24x33x33x33x33x33x33xcbx40x24x33x33x33x33x33x33xcbx40x24x33x33x33x33x33x33xa4x76x61x72x31x93xcbxffxf8x00x00x00x00x00x00xcbx40x34x19x99x99x99x99x9axcbx40x34x19x99x99x99x99x9axa4x76x61x72x32x93xcbxffxf8x00x00x00x00x00x00xcbxffxf8x00x00x00x00x00x00xcbx40x3ex19x99x99x99x99x9a '

Я могу вставить “/”, но тогда он не может быть обработан в msgpack.Когда я пытаюсь вставить “\”, я снова получаю двойную обратную косую черту.Может ли кто-нибудь помочь мне с этим?

Мой желаемый вывод:

b '\ x91 \ x84 \ xa4 \ x74 \ x69 \ x6d \ x65\ x93 \ XCB \ x42 \ x2b \ X5b \ x8b \ xb7 \ x00 \ x00 \ x00 \ XCB \ x42 \ x2b \ X5b \ x8b \ xb7 \ x00 \ x05 \ x1f \ XCB \ x42 \ x2b \ X5b \ x8b \ xb7\ x00 \ x0a \ x3e \ xa4 \ x76 \ x61 \ x72 \ x30 \ x93 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33 \ x33 \ x33 \ x33 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33 \ x33\ x33 \ x33 \ XCB \ x40 \ x24 \ x33 \ x33 \ x33 \ x33 \ x33 \ x33 \ xa4 \ x76 \ x61 \ x72 \ x31 \ x93 \ XCB \ XFF \ XF8 \ x00 \ x00 \ x00 \ x00 \ x00\ x00 \ XCB \ x40 \ x34 \ x19 \ x99 \ x99 \ x99 \ x99 \ X9a \ XCB \ x40 \ x34 \ x19 \ x99 \ x99 \ x99 \ x99 \ X9a \ xa4 \ x76 \ x61 \ x72 \ x32 \ x93\ XCB \ XFF \ XF8 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XCB \ XFF \ XF8 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ XCB \ x40 \ x3e \ x19 \ x99 \ x99 \ x99\ x99 \ x9a '

1 Ответ

0 голосов
/ 14 декабря 2018

Вы можете просто сделать:

x = '/x91/x84/xa4/x74'
b = x.replace(r'/', '\\')

Теперь просто не пишите b в вашей консоли, оно покажет вам двойное значение \\.Если вы хотите видеть b так, как задумано, напишите print(b)

...