У меня есть файл Excel .CSV, который я пытаюсь прочитать с помощью DictReader.Python DictReader - Пропуск строк с отсутствующими столбцами?
Все, кажется, хорошо, за исключением того, что он, кажется, пропускает строки, в частности те, у которых отсутствуют столбцы.
Наш вход выглядит следующим образом:
mail,givenName,sn,lorem,ipsum,dolor,telephoneNumber
[email protected],ian,bay,3424,8403,2535,+65(2)34523534545
[email protected],mike,gibson,3424,8403,2535,+65(2)34523534545
[email protected],ross,martin,,,,+65(2)34523534545
[email protected],david,connor,,,,+65(2)34523534545
[email protected],chris,call,3424,8403,2535,+65(2)34523534545
Таким образом, некоторые из строк имеют недостающие столбцы Lorem/Ipsum/Dolor, и это просто строка запятых для тех.
мы читаем его с:
def read_gd_dump(input_file="blah 20100423.csv"):
gd_extract = csv.DictReader(open('blah 20100423.csv'), restval='missing', dialect='excel')
return dict([(row['something'], row) for row in gd_extract])
И я проверил, что «что-то» (ключ для нашего Словаре) не один из недостающих столбцов, я изначально подозревал, что это может быть, , Это один из столбцов после этого.
Однако DictReader, похоже, полностью пропускает строки. Я попытался настроить restval на что-то, похоже, не имело никакого значения. Кажется, я ничего не могу найти в документах CSV Python (http://docs.python.org/library/csv.html), которые объясняли бы это поведение, но я, возможно, что-то неправильно понял.
Woah, * the * Alex Materlli * ухмылка *. Hi =). Вы когда-нибудь обновляете Python в двух словах, кстати? Да, я упростил его как для упрощения чтения, так и для соображений конфиденциальности/соблюдения (место, в котором я работаю, скорее ... строгий). Оказывается, вы были правы, см. Редактировать выше. – victorhooi
@victor, я должен был обновить Nutshell, но я узнал, что не могу сделать действительно отличную работу, если я действительно не использую версию Python, я должен обновить Nutshell до - я имею в виду в реальной жизни, как против того, чтобы играть с ним и отвечать на вопросы SO ;-). Мы скоро обновляемся на работе, чтобы в конечном итоге это изменилось! –
Алекс, ага, с нетерпением жду этого =). У вас должен быть как голос, так и галочка (вот что я сделал с моей стороны). Проверить снова? Кроме того, я опубликовал следующий вопрос http://stackoverflow.com/questions/2901872/python-checking-for-membership-inside-nested-dict Я думаю, что у него довольно простое решение, я, вероятно, просто немного сплю -прибыл/запаздывал прямо сейчас. Благодарю. – victorhooi