Составьте список US Birth: как сделать строку для int в списке

1
def read_csv(filename):
    string_data = open(filename).read()
    string_list = string_data.split("\n")[1:]
    final_list = []

    for row in string_list:
        string_fields = row.split(",")
        int_fields = []
        for value in string_fields:
            int_fields.append(value)
        final_list.append(int_fields)
    return final_list

cdc_list = read_csv("US_births_1994-2003_CDC_NCHS.csv")
cdc_list[0:3]

когда я запускаю этот код, я получил результат так:

[['1994', '1', '1', '6', '8096'], ['1994', '1', '2', '7', '7772'], ['1994', '1', '3', '1', '10142']]

Но я хочу, чтобы результат был примерно таким:

[[1994, 1, 1, 6, 8096], [1994, 1, 2, 7, 7772], [1994, 1, 3, 1, 10142]]

ты можешь помочь мне с этим?

  • 0
    Если вы получаете исключение, вы должны опубликовать полное исключение, это поможет людям помочь вам. Если это данные csv используйте модуль csv , это значительно облегчит чтение. Вы пробовали печатать value ?
  • 0
    [1994,1,1,6,8097] не может быть преобразован в число с плавающей точкой
Показать ещё 4 комментария
Теги:
valueerror

1 ответ

1

Следующее понимание списка преобразует строки в подсписках cdc_list в целые числа:

[list(map(int, s)) for s in cdc_list]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню