csv.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" 実行できない場合は、辞書のリストをマージするだけで解決します。これは、科学者もプログラマーも同様にデータセットでやりたいと思うことは珍しいことではありません。