Я строю массивный гусеничный ход, который AWS Lambda должен использовать для своей скорости.
Но так как я читаю данные из лямбды, он будет кодировать не английский текст дважды.
что-то вроде
"b\'<!DOCTYPE html>\\\\r\\\\n<html lang=\\"ko\\">\\\\r\\\\n<head>\\\\r\\\\n\\\\t<title id=\\"browse_title\\">\\\\\'\\\\xec\\\\x8a\\\\x88\\\\xea\\\\xb0\\\\x80\\\\xeb\\\\xa7\\\\xa82\\\\\'
код от лямбды
def get_html(url):
r = requests.request(url=url, method="GET")
# r.encoding = 'euc-kr'
return {
"html": r.content
}
Код от вызова лямбды
def call_lambda_function():
invoke_response = client.invoke(
FunctionName="lambda_function_test",
InvocationType="RequestResponse",
Payload=json.dumps(payload)
)
data = invoke_response['Payload'].read()
print(data)
вывод из запуска лямбды
b '{"html": "\ r \ n \ r \ n \ r \ n \ t \' \ uc288 \ uac00 \ ub9e82 \ '7 \ uacf5 \ uc8fc
\ uadfc \ ud669 \ uacf5 \ uac1c
\ "\ Uc5f0 \ uae30 \ u00b7 \ uce74 \ uc774 \ uc2a4 \ ud2b8
\ uc785 \ ud559 \ u82b1 \ ubc29 \ uc1a1 \ uc0ac \ ud569 \ uaca9 \ "....
добавление decode('my-encoding')
не сработает. он будет декодироваться, но декодированный результат будет закодированной строкой. (что я сказал двойным кодированием)
Так! вот что я хочу.
я хочу, чтобы лямбда не возвращала байт, а строковый объект.
Хотелось бы, чтобы для этого было простое решение!
иначе я пытался это сделать.
adding return str(return_target) to lambda function
это все еще вернет байты