このリンクが以下に示されている場所として、解析ファイルが必要です。http://bit.ly/1x6yzoX
このファイルを解析するための次のメソッドを作成しましたが、テキスト ファイルのテーブルにスペースが空いた最新年 (2014 年) の不完全なデータを読み取ることができませんでした。今のところ、読めない行は飛ばしています。
この問題を処理する方法を教えてください。
LINES_TO_IGNORE = 7
import collections
import csv
def parse_file(data_file):
result_dict = collections.OrderedDict()
if not data_file:
return result_dict
with open(data_file) as f:
reader = csv.reader(f, delimiter="\t")
data = islice(reader, LINES_TO_IGNORE, None, None)
if not data:
return result_dict
# Get file headers
headers = data.next()
headers = headers[0].split()
keys = headers[1:]
for row in data:
values = row[0].split()
if len(headers) == len(values):
year = parse_to_int(values[0])
data_list = [parse_to_float(x) for x in values[1:]]
# Each line becomes a dict (column_header->value)
data_dict = collections.OrderedDict(zip(keys, data_list))
else:
print "Skipping"
# result_dict is dict of dict (year->data_dict)
result_dict[year] = data_dict
return result_dict