0
所以我想比較一個字典,我創建了一個由boto3調用返回的字典響應。由API返回的Unicode字符串不等於我的字典
響應是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''}]}
我最初創建我的字典是這樣的:
default_documment = {}
default_documment['Version'] = '2012-10-17'
default_documment['Statement'] = [{}]
default_documment['Statement'][0]['Sid'] = ''
default_documment['Statement'][0]['Effect'] = 'Allow'
default_documment['Statement'][0]['Principal'] = {}
default_documment['Statement'][0]['Principal']['Service'] = 'ec2.amazonaws.com'
default_documment['Statement'][0]['Action'] = 'sts:AssumeRole'
然而,當我這兩種類型的字典用==比較不相等。
於是我嘗試添加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'
這也不起作用。這些詞典並不是同樣的,如果我做了我的字典打印,它不會顯示u'somestring',它只是顯示'somestring'。
如何將我的詞典與boto3返回的內容進行比較?
當你在一個調試器下拉和檢查,會發生什麼單獨的值並比較它們? – jimjkelly