#python
Вопрос:
У меня есть строка с ведущими символами NUL, я могу видеть их как null, когда открываю ее в блокноте , иначе она отображается как пустое пространство, но любая из функций полосы в строке не работает, как я могу ее удалить?
exp=
{"asctime": "2021-09-07 18:58:37,645", "name": "Frontend_Tableau", "levelname": "DEBUG", "message": "Extracted Dashboard details from tableau", "type": "dashboard", "Name": "Overview"}
это то, что я пробовал
exp.lstrip()
Комментарии:
1. Что, если ты это сделаешь
exp = exp.decode('utf-8').lstrip('x00').encode('utf-8')
. Кроме того, не забывайте, что lstrip не изменяет значение на месте, поэтому вам придется переназначить его (напримерexp = exp.lstrip
)2.
exp.lstrip()
Это действительно работает.>>> >>> exp = " Manjesh" >>> exp ' Manjesh' >>> exp.lstrip() 'Manjesh'
Протестировано на терминале Python 3.9 и отлично работает3. @jkoestinger exp-это строковый тип, поэтому декодирование не поддерживается, могу ли я попробовать exp=exp.lstrip(‘x00’) это правильно?
4. Я перепутал
encode
, иdecode
они должны быть перевернуты , но манджеш23, похоже, попытался напрямую5. @jkoestinger кодирование и декодирование не работает для str obj
Ответ №1:
encode
и decode
это определенно должно сработать, я провел те же тесты, что и манджеш23:
>>> int(0).to_bytes(1, 'big') # Creating a null byte (I don't know how yours is created in the first place)
b'x00'
>>> test = int(0).to_bytes(1, 'big').decode('utf-8') 'hello' # Storing it as a string
>>> test
'x00hello'
>>> print(test)
hello
>>> test.lstrip('x00')
'hello'
>>> print(test.lstrip('x00'))
hello
Если это все еще не работает, я думаю, нам не хватает дополнительной информации