Форум сайта python.su
0
Добрый день. у меня есть небольшой класс по считыванию данных из файлов. В этом классе я считываю данные из файла, они предаставлены в .csv файле 2-мя строками таким образом
метан, этан, пропан, изобутан, бутан, изопентан, пентан, изогексан, гексан, изогептан, гептан, изооктан, октан, изононан, нонан 0, 0, 0, 0, 0, 0, 0, 21, 34, 60, 105, 128, 50, 80, 42
class loading_flle: ''' класс по считыванию файлов ''' def __init__(self): self.paraphine = { 'метан': -161.5, 'этан': -88.6, 'пропан': -42.1, 'бутан': -0.5, 'изобутан': -11.7, 'пентан': 36.1, 'изопентан': 27.9, 'неопентан': 9.5, 'гексан': 68.73, 'изогексан': 60.3, 'демитилбутан': 49.7, 'изогептан': 90, 'гептан': 98.4, 'метилгексан': 90.1, 'этилпентан': 93.5, 'диментилпентан': 79.2, 'триптан': 80.9, 'октан': 125.68, 'метилгептан': 117.6, 'деметилгексан': 106.8, 'метил-3-этилпентан': 115.7, 'изооктан': 109.8, 'тетраметилбутан': 106.5, 'изононан': 143.3, 'нонан': 150.8, 'декан': 174.1, 'ундекан': 195.9, 'додекан': 216.3, 'эйкозан': 342.7, 'тридекан': 235.4, 'тетрадекан': 250, 'водород': 252.9 } self.data = [] self.load_data_on_files() def load_data_on_files(self): ''' метод считывающий исходные данные из файлов ''' for file_filename in os.listdir(directory_load_file_csv): x, y = np.genfromtxt(directory_load_file_csv + file_filename, dtype='str', delimiter=', ') print(x[0]) # x,y = np.loadtxt(directory_load_file_csv + # file_filename, delimiter=',') for i, item in enumerate(x): x[i] = self.paraphine[x[i]] if len(x) != len(y): # проверка данных print('разное количество данных! перепроверьте!!!!!!!') self.data.append([x, y])
x = self.paraphine[x]может подсказать, как исправить ?
KeyError: ‘метан’
Отредактировано druidich92 (Июнь 9, 2018 15:33:33)
Офлайн
5
csv файл выглядит так :
метан,этан,пропан
1,2,3
import csv # Пропущу создание класса... self.paraphine = [10,20,30] def replace_element(self): with open('YOURFILE.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: convert_data = dict(zip(self.paraphine, row.values()) return conver_data >>> {10: '1', 20: '2', 30: '3'}
Отредактировано spikejke (Июнь 9, 2018 21:48:38)
Офлайн