我正在使用csv.DictReader()來讀取文件。它實際上返回一個字典列表,而不是單個字典。我如何強制它返回單個字典,或者如何合併它返回的字典列表?Python:DictReader返回字典列表?
def agilent_e8361c_pna_read(file_loc):
'''
Load the '.s2p' file in to a dictionary.
'''
with open(file_loc) as f:
# define the fields in the Agilent '.s2p' file
col_names = ["f","s11","arg_s11","s21","arg_s21","s12","arg_s12","s22","arg_s22"]
# read the data into a dictionary
s2p_dicts = csv.DictReader(itertools.ifilter(n_input.is_comment, f), fieldnames=col_names, delimiter=' ')
return s2p_dict
理想情況下,數據將被最初讀成一個單一的字典,從來沒有需要合併。它是一組數據。這些列屬於一起,沒有完整集合或連貫的子集是無意義的。如果DictReader不是「pythonically」能夠完成這個壯舉,我將決定合併詞典列表。這不應該是科學家和程序員都想要用數據集所做的不常見的事情。
爲什麼會返回單個字典?它爲輸入文件中的每一行返回一個字典,這就是它的意圖。 – 2013-03-22 14:21:43
如果你輸入的文件只包含* 1 *行,只需選擇那一行:'return next(s2p_dict)'。 – 2013-03-22 14:23:32
如果它包含多行,您是如何預期數據將被映射到字典的鍵? – 2013-03-22 14:24:27