为CSV编写Python字典

2024-10-02 06:28:03 发布

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

希望你能帮我

我有一个嵌套的字典,如下所示:

Inventory = {'devicename': {'Interface1': {'port_setting1': 'value', 'port_setting2': 'value'}, 'Interface2': {'port_setting1': 'value', 'port_setting2': 'value'}}}

我想用以下格式创建一个csv:

devicename, interface1, value of port_setting1, value of portsetting2
devicename, interface2, value of port_setting1, value of portsetting2

你能帮我处理一下吗

谢谢


Tags: ofcsv字典valueport格式inventorysetting1
2条回答

您可以在文件中的dictprint之间循环:

with open(filename.csv, 'w') as fh:
    for k, v in Inventory.items():
        for k1, v1 in v.items():
            print(k, k1, *v1.values(), file=fh, sep=', ')

或者在理解上:

with open(filename.csv, 'w') as fh:
    print(*(', '.join((k, k1, *v1.values())) 
           for k, v in Inventory.items() 
           for k1, v1 in v.items()), 
           file=fh, sep='\n'
     )

输出:

devicename, Interface1, value, value
devicename, Interface2, value, value

您可以将字典导入数据帧。然后可以将其导出为csv,而不使用列名,以实现所需的功能

下面的代码片段可以实现此目的:

import pandas as pd

df = pd.DataFrame.from_dict({(i,j): Inventory[i][j] 
                           for i in Inventory.keys() 
                           for j in Inventory[i].keys()},
                       orient='index')
df.to_csv('test.csv', header = False)

对于问题中显示的名为Inventory的词典,您的test.csv就是这样的:

devicename,Interface1,value,value
devicename,Interface2,value,value

相关问题 更多 >

    热门问题