分配给字典后,Python将字符串转换为元组

时间:2018-11-19 07:14:07

标签: python

我有一个非常奇怪的python问题。我已经问过几个不知道它如何发生以及如何解决的同事。

我从API调用中收到了一个浅的字符串字典,我想将其中一些值分配给新字典。

这是第一个字典的样子。只是一串字符串: This is what the first dict looks like. Just a bunch of strings

我将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”仍然是字符串 Then this happens. The values for "secret access key" and "session_token" are turned into tuples. "access_key" and "region" remain strings

我已经尝试过将值初始化为字符串,访问元组的第一个条目并将值转换为字符串。所有这些并没有改变任何东西。似乎该值已分配好,然后发生了一些奇怪的事情,将其变成元组

这是我的口译员设置的屏幕截图。我正在使用Pyython 3.6 This is a screenshot of my Interpreter settings. I am using Pyython 3.6

我真的为这个疯了:-/任何帮助将不胜感激

3 个答案:

答案 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']