#python #api #encoding #utf-8
Вопрос:
Извините, у меня есть def create на Python для использования API. С любым символом, включая символы, которые можно сохранить или создать.
С такой кодировкой:
text = str(bbas l).encode('UTF-8')
hash_md5 = hashlib.md5(text).hexdigest()
md5_encode = hash_md5.encode('UTF-8')
hash_sha1 = hashlib.sha1(md5_encode).hexdigest()
location_source = hash_sha1[0:6]
Но кроме этих символов amp; # ‘
Как исправить код для анализа данных, чтобы принимать символы amp; # ‘? С уважением, Фаузи
Комментарии:
1.
eval()
не имеет никакого отношения к обработке пользовательского ввода. Используйте для этого установленный и безопасный формат, такой как JSON.
Ответ №1:
Параметры, добавленные в URL-адрес, должны быть закодированы в URL-адрес. Используйте urllib.parse.quote
для python3, urllib.urlencode
для python2.
Как уже упоминалось в комментариях, лучше не использовать eval() для данных, полученных через ваш API — сериализуйте их вместо этого с помощью чего-то вроде JSON.
Комментарии:
1. Как уже упоминалось, я использовал JSON вместо метода «POST» с «Типом содержимого»: «приложение/json». Я попытался преобразовать символы в URL-адресе, используя & дляamp;, # для # и » для «. Это работает. Но это не рекомендуется для пользователя.