我有一个非常奇怪的python问题。我已经问过几位同事,他们都不知道这是怎么发生的以及如何解决的。
我有一个从 API 调用中收到的字符串的浅字典,我想将其中的一些值分配给一个新的字典。
这就是第一个 dict 的样子。只是一堆字符串:

我将 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']
Run Code Online (Sandbox Code Playgroud)
然后发生这种情况。“秘密访问密钥”和“session_token”的值被转换成元组。“access_key”和“region”仍然是字符串

我已经尝试将值初始化为字符串,访问元组的第一个条目并将值转换为字符串。所有这一切都没有改变任何事情。似乎该值被分配得很好,然后发生了一些奇怪的事情,将它变成了一个元组
这是我的解释器设置的屏幕截图。我正在使用 Python 3.6

我真的为这个疯狂:-/ 任何帮助将不胜感激
亲爱的朋友,你遇到这个问题的原因是 Python 元组是用逗号标识的。
你可以试试这个代码
a = 1,
print(a,type(a))
b = 1
print(b,type(b))
Run Code Online (Sandbox Code Playgroud)
所以我将您的代码更新为:
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']
Run Code Online (Sandbox Code Playgroud)
我认为这会有所帮助!