В настоящее время я работаю над функцией проверки, которая возвращает True
или False
на основе выражения (если инструкция). Заголовок base64 декодируется, а затем json.loads
используется для преобразования его в dict. Ниже приведен метод:Функция возвращает false, когда она должна возвращаться. Проблема с кодировкой?
@staticmethod
def verify(rel):
if not('hello' in rel and rel['hello'] is 'blah' and 'alg' in rel and rel['alg'] is 'HS256'):
return False
return True
Проверка только завершается с ошибкой, если параметр был базовым 64, декодированным и преобразованным в dict. Зачем? Любая помощь будет оценена по достоинству.
Редактировать: В соответствии с запросом, вот как я называю метод. Python 3.5.2
p = {'hello': 'blah', 'alg': 'HS256'}
f = urlsafe_b64encode(json.dumps(p).encode('utf-8'))
h = json.loads(str(urlsafe_b64decode(f))[2:-1], 'utf-8')
print(verify(h))
Думаю, нам нужно больше контекста. Как выглядит вызов этой функции? И данные передаются ему? – sdsmith