2016-07-26 23 views
1

我無法嘗試將我的字典輸出到CSV文件。我有一個字典,其中包含時間日期和值作爲關鍵字,公司屬於這些日期是字符串格式。我試圖通過網站尋找相同的問題,但它並沒有真正幫助我的情況。我嘗試了下面的代碼,並設法得到第一行中的鍵,第二列中的值,但那不是我想要的。python字典到csv,其中每個鍵位於單獨的列中的單獨的行和值

import csv 
with open('dict1.csv','w') as f: 
    w = csv.writer(f,delimiter=',') 
    for key,values in sorted(a.items()): 
     w.writerow([key,values]) 

但是,這爲我提供了以下格式的CSV文件:

2009/01/02 ['AA' 'BB' 'AAPL'] etc 
2009/01/03 ['AA' 'CC' 'DD' 'FF'] 

因此我只有兩列。但是我想要:

2009/01/02 'AA' 'BB' 'AAPL' 
2009/01/02 'AA' 'CC' 'DD' 'FF' 

分別在第一行的4個列和第二行的5個列中。
我甚至嘗試

for dates in sorted(a): 
    w.writerow([date] + my_dict[date]) 

但是這給了我錯誤說不受支持的操作類型+「時間戳」和「海峽」。

任何幫助將不勝感激。由於

+0

嘗試時間戳對象轉換爲一個字符串,然後將它附加到一個字符串上左邊看到的日期可能不是字符串 –

+0

沒有幫助轉換爲字符串將所有的鍵作爲單獨的列出於某種原因,我希望我所有的鍵在第一列。 – rajn

回答

1

此行將關鍵字(日期)放入關鍵變量中,並將值作爲列表中的值。所以價值確實會包含一些東西,如['AA''BB''AAPL']。

for key,values in sorted(a.items()): 

接下來,你告訴writerow「寫一排有兩個要素:第一是關鍵,二是無論是在價值觀」(這是一個列表,所以它只是轉換爲字符串表示和這樣的輸出)。

w.writerow([key,values]) 

所以[鍵,值]是這樣的:

[2009/01/02, ['AA','BB','AAPL']] 
^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ 
the key  this whole thing 
      is the single value 

你想要什麼,我想,是創建一個包含包含密鑰的密鑰字符串,而不是一個單一的列表和一個字符串列表。你可以用多餘的值擴展列表,像這樣:

the_row = [key] # Create the initial row with just key 
    the_row.extend(values) # Add the values, one by one, to the row 
    w.writerow(the_row) # Write the full row 

list.extend(L)不:通過添加指定列表中的所有元素來擴充清單。

+0

謝謝,但它表示編寫序列的預期。 – rajn

+0

道歉! extend()不會返回擴展列表,但可以對其進行修改。我會在一秒之內修復這個例子。 – Roadmaster

+0

謝謝Roadmaster先生。這工作。 :) – rajn

0

你可能需要把這樣的事情:

for key,values in sorted(a.items()): 
    w.writerow(str(key) + "," + ","join(values)) 

",".join(values)將值列表分成逗號分隔的字符串。我假設你想用逗號分隔你的列,因爲你正在編寫一個csv文件,儘管在你的例子中這些列是由tab分隔的。

+0

抱歉,每個值對應關注我的鑰匙是由公司代號分隔的名單。它們用逗號分隔。但在我的輸出excel文件,這是它輸出的格式是奇怪的。我試過你的方法,但即時獲取','作爲一個列以及這不是我想 – rajn

1

對不起,如果我讀了這個錯誤,但你使用python熊貓?

「我有一個字典,它包含時間日期和值作爲關鍵字,>有關這些日期的公司是字符串格式。「

在這種情況下,像這樣

可能工作

import pandas as pd 
df = pd.DataFrame(mydict) 
df = df.transpose() 
df.to_csv('dict1.csv',encoding='utf-8') 

的to_csv方法是默認使用‘’作爲在需要時您可以更改分隔符。

+0

沒有抱歉。日期在datetime對象中。不是熊貓。我會改變我的措辭。 – rajn

相關問題