从第三级创建3层词典和打印

时间:2017-04-20 21:42:38

标签: python python-2.7 dictionary

我正在尝试创建一个存储MPLS电路信息的3层字典。我只尝试了2层,但发现信息被字典层中的最后一个条目覆盖了。

一旦我拥有该词典,我希望能够通过print语句向用户呈现该词典中的可用载体。

这是我的字典结构。

carriers = {
    '4': {
        'AT&T': {
            "Role":"Primary", "Interface":"TenGigabitEthernet4/3/0", "Location":"Computer Center"},
        'CentPri': {
            "Role":"Primary", "Interface":"GigabitEthernet4/0/0", "Location":"Computer Center"},
        'CentSec': {
            "Role":"Secondary", "Interface":"GigabitEthernet1/2/0", "Location":"ESF"},
        'Verizon': {
            "Role":"Primary", "Interface":"GigabitEthernet1/0/0", "Location":"ESF"}
        },
    '2': {
        "TeliaSonera": {
            "Role":"Primary", "Interface":"GigabitEthernet0/0/1", "Location":"Mannheim"},
        "Verizon": {
            "Role":"Primary", "Interface":"GigabitEthernet0/0/0.40", "Location":"Mannheim"},
        "AT&T": {
            "Role":"Primary", "Interface":"GigabitEthernet1/0/0.2", "Location":"Mannheim"}
        },
    '1': {
        'Tata': {
            "Role":"Primary", "Interface":"GigabitEthernet0/0/6", "Location":"TCI - 1, Pune, India"}
        }
            }

以下是我要求用户选择哪个地区,然后询问他们想知道哪些运营商。

region_choice = raw_input("Select a Region: (1-4)\n")
if region_choice in carriers:
    carrier_choice = raw_input("Select from the following carriers: {}".format(carriers[region_choice][0]))

我意识到我在载体[region_choice]后面有一个[0],但那就是我被困住的地方。

如何从所选词典中显示所有承运人?

期望的结果:

选择一个地区:(1-4) 4

从以下运营商中选择:AT& T,CentPri,CentSec,Verizon AT& T公司

我可以从这里做其余的事。

1 个答案:

答案 0 :(得分:0)

30     18     *     *     *         rm /home/someuser/tmp/*

结果:

region_choice = raw_input("Select a Region: (1-4)\n")
if region_choice in carriers:
    carrier_choice = raw_input("Select from the following carriers: {}".format(", ".join(carriers[region_choice].keys())))

基本上您需要所在地区的Select a Region: (1-4) 4 Select from the following carriers: CentSec, AT&T, Verizon, CentPri keys。这会返回dict,您可以通过list将其转换为字符串。

请记住,由于dicts是无序的,因此您无法保证字符串中的运营商的顺序。为此,您需要OrderedDict