簡體   English   中英

將 Python 字典寫入 CSV

[英]Writing a Python Dictionary to CSV

希望你能幫助我。

我有一個這樣的嵌套字典:

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

你能幫我解決這個問題嗎?

謝謝!

您可以將字典導入 pandas dataframe。 然后可以將其導出為 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

您可以遍歷dict並在文件中print

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'
     )

Output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM