我正在尝试关注this documentation for same region replication。
我在代码中有这一行,所以只是想了解它的含义?
sns_message = ast.literal_eval(event['Records'][0]['Sns']['Message'])
ast.literal_eval
在这里做什么?
key = str(urllib.unquote_plus(sns_message['Records'][0]['s3']['object']['key']).decode('utf8'))
要在此处了解为什么使用urllib.unquote_plus?
答案 0 :(得分:1)
ast.literal_eval根据值的格式将值类型转换为值类型。以下代码将根据字符串的格式将字符串转换为列表。
string_a = "['test', 'example']"
list_a = ast.literal_eval(string_a)
如果检查string_a和list_a的类型,可以看到string_a的类型为字符串,而list_a的类型为list。
此外,函数urllib.unquote_plus将删除url中的“ +”号,并将其替换为空格。
>>> s = 'http://stackoverflow.com/questions/?q1=xx+xx+xx'
>>> urllib.unquote_plus(s)
'http://stackoverflow.com/questions/?q1=xx xx xx'