我对Python字典的看法正确吗

2024-09-29 00:16:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆来自网络世界的BGP AS数字,我想如果我把它们都放在字典格式中,我就可以用用户输入的他们要找的数字快速搜索它们,并让它打印出关键值,说明AS数字在城市中的使用位置:

a12345  =   {'Region': 'VEND', 'AS':    '12345',    'City': 'Shanghai China'}

a56789  =   {'Region': 'VEND', 'AS':    '56789',    'City': 'Singapore'}

a98765  =   {'Region': 'EMEA', 'AS':    '98765',    'City': 'Concesio, IT'}

当我得到用户输入时,如果我尝试将用户输入的5位数字转换为字符串并添加“a”+,我会得到一个不能用字符串调用的字典

>>> print(test)
a12345

>>> type(test)
<class 'str'>

>>> a12345.get('AS')
'12345'

>>> test.get('AS')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'get'

有没有办法把用户输入转换成不同的类型,比如dict

我是一个真正的Python新手,所以希望我的问题是在正确的方式框架


Tags: 字符串用户test网络cityget字典as
2条回答

您要做的是将数据结构如下:

a = {'12345': {'Region': 'VEND', 'City': 'Shanghai China'},
     '56789': {'Region': 'VEND', 'City': 'Singapore'},
     '98765': {'Region': 'EMEA', 'City': 'Concesio, IT'}}

然后要访问12345,可以使用a['12345']

这是因为a12345是变量名,teststr。如果您要接收来自用户的输入,并希望根据该输入进行查找,则应该以不同的方式构造数据

data = {
    'a12345': {
        'Region': 'VEND',
        ...
    },
    ...
}

然后你就可以

data.get(test, {}).get('AS')

相关问题 更多 >