API返回的Unicode字符串不等于我的di

2024-09-30 02:31:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图将我创建的dict与boto3调用返回的dict响应进行比较。在

响应是JSON文档的表示,我想检查它们是否相同。在

Boto3总是以unicode的形式返回字符串。回复如下:

{u'Version': u'2012-10-17', u'Statement': [{u'Action': u'sts:AssumeRole', u'Principal': {u'Service': u'ec2.amazonaws.com'}, u'Effect': u'Allow', u'Sid': u''}]}

我最初是这样写的:

^{pr2}$

然而,当我用==比较这两个dict时,它们是不相等的。在

所以当我创建dict时,我尝试将u添加到所有字符串中:

# Default document for a new role
default_documment = {}
default_documment[u'Version'] = u'2012-10-17'
default_documment[u'Statement'] = [{}]
default_documment[u'Statement'][0][u'Sid'] = u''
default_documment[u'Statement'][0][u'Effect'] = u'Allow'
default_documment[u'Statement'][0][u'Principal'] = {}
default_documment[u'Statement'][0][u'Principal'][u'Service'] = u'ec2.amazonaws.com'
default_documment[u'Statement'][0][u'Action'] = u'sts:AssumeRole'

这也不管用。口述是不平等的,如果我把我的口述打印出来,它不会显示“somestring”,它只显示“somestring”。在

我怎么能把我的口述和boto3返回的结果相比较呢?在


Tags: 字符串principaldefaultversionserviceactionboto3ec2
1条回答
网友
1楼 · 发布于 2024-09-30 02:31:32

第二次尝试在Python2.7和3.3中正常工作。下面是您的Boto3响应和代码的剪切和粘贴(文档拼写已更正:)

D = {u'Version': u'2012-10-17', u'Statement': [{u'Action': u'sts:AssumeRole', u'Principal': {u'Service': u'ec2.amazonaws.com'}, u'Effect': u'Allow', u'Sid': u''}]}

default_document = {}
default_document[u'Version'] = u'2012-10-17'
default_document[u'Statement'] = [{}]
default_document[u'Statement'][0][u'Sid'] = u''
default_document[u'Statement'][0][u'Effect'] = u'Allow'
default_document[u'Statement'][0][u'Principal'] = {}
default_document[u'Statement'][0][u'Principal'][u'Service'] = u'ec2.amazonaws.com'
default_document[u'Statement'][0][u'Action'] = u'sts:AssumeRole'

print(D == default_document)

输出:

^{pr2}$

相关问题 更多 >

    热门问题