我有一个非常奇怪的python问题。我已经问过几个不知道它如何发生以及如何解决的同事。
我从API调用中收到了一个浅的字符串字典,我想将其中一些值分配给新字典。
这是第一个字典的样子。只是一串字符串:
我将dict1中的某些值分配给dict2中的某些键。真的很基础
dict2={}
dict2['access_key'] = dict1['access_key']
dict2['secret_access_key'] = dict1['secret_access_key'],
dict2['session_token'] =dict1['session_token'],
dict2['region'] = dict1['region']
然后发生这种情况。 “秘密访问密钥”和“ session_token”的值被转换为元组。 “ access_key”和“ region”仍然是字符串
我已经尝试过将值初始化为字符串,访问元组的第一个条目并将值转换为字符串。所有这些并没有改变任何东西。似乎该值已分配好,然后发生了一些奇怪的事情,将其变成元组
这是我的口译员设置的屏幕截图。我正在使用Pyython 3.6
我真的为这个疯了:-/任何帮助将不胜感激
答案 0 :(得分:3)
在两个呼叫结束时,您将逗号结尾。这就是将字符串转换为元组的原因。
答案 1 :(得分:1)
亲爱的朋友,您遇到此问题的原因是在Python元组中用逗号来表示。
您可以尝试使用此代码
a = 1,
print(a,type(a))
b = 1
print(b,type(b))
所以我将您的代码更新为:
dict2={}
dict2['access_key'] = dict1['access_key']
# please notes the end !
# dict2['secret_access_key'] = dict1['secret_access_key'],
# dict2['session_token'] =dict1['session_token'],
# above is the origin code
dict2['secret_access_key'] = dict1['secret_access_key']
dict2['session_token'] =dict1['session_token']
dict2['region'] = dict1['region']
我认为这会有所帮助!
答案 2 :(得分:-1)
通过删除结尾的逗号来尝试以下操作:
dict2={}
dict2['access_key'] = dict1['access_key']
dict2['secret_access_key'] = dict1['secret_access_key']
dict2['session_token'] =dict1['session_token']
dict2['region'] = dict1['region']