1

当我尝试获取一个键的值时,我得到一个“str”对象没有属性“get”错误,而键的值又是字典的名称。如何告诉 python 返回的字符串是字典?

choices = ['Country','State','Town']
chosen = 'Country'
country_color = {'Netherlands':'Red','Sweden':'Brown','Ukraine':'Yellow','China':'Pink','Japan':'Black'}
state_color = { .... }
town_color = { .... }

color_data = {'Country': ['col1','country_color'] ,'State': ['col2','state_color'] ,'Town': ['col3','town_color']}
    .....

color1 = lambda v: country_color.get(v['col1']) # this works
color2 = lambda v: country_color.get(v[color_data.get(chosen)[0]]) # this too works  
color3 = lambda v: color_data.get(chosen)[1].get(v[color_data.get(chosen)[0]]) # but this doesn't work; error - 'str' object has no attribute 'get'

    ....
4

2 回答 2

5

color_data.get(chosen)[1]返回country_color,一个字符串,正如你所知道的。

如果您想访问country_color字典,为什么不更改color_data:) 中的值?

color_data = {'Country': ['col1', country_color] # Notice how it's not a string anymore
于 2013-06-10T09:41:20.630 回答
0

如果你这样编码:

  1. print("Client Name is : {}".format(function).get()) ----错误----
  2. 你会得到这个错误'str' object has no attribute 'get'
  3. print("Client Name is : {}".format(FNEntry.get())) ----固定----
于 2020-04-06T00:04:33.237 回答