當我保存表示與格式的圖形的字典:消除由csv.DictWriter創建括號在Python
graph_dict = {'b': ['a', 'c'], 'a': [], 'c': ['a'], 'd': []}
,並與csv.DictWriter保存並加載它,我得到:
loaded_graph ={'b': "['a', 'c']", 'c': "['a']", 'a': '[]', 'd': '[]'}
如何避免爲值列表添加引號或在讀取文件時需要使用哪些代碼來刪除它們?幫助將不勝感激!
print(graph_dict)
with open('graph.csv', 'w') as csvfile:
graph = ['vertices', 'edges']
writer = csv.DictWriter(csvfile, fieldnames=graph)
writer.writeheader()
for vertex in graph_dict:
edges = graph_dict[vertex]
writer.writerow({'vertices': vertex, 'edges': edges})
print("reading")
loaded_graph = {}
with open('graph.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
loaded_graph[row['vertices']] = row['edges']
print(loaded_graph)
在編輯器中打開CSV文件看起來是這樣的:
vertices,edges
b,"['a', 'c']"
a,[]
c,['a']
d,[]
括號?你的意思是引號/引號? CSV不是適用於嵌套數據結構的格式,因此您已經吠叫錯誤的樹。 – ShadowRanger
使用[JSON而不是CSV](http://stackoverflow.com/questions/17043860/python-dump-dict-to-json-file)並繼續。 CSV設計用於平面表格式數據格式,不適用於任意嵌套數據。使用適當的工具來達到你想要達到的效果。 –