У меня есть файл csv с 4 столбцами и вы хотите создать список массивов python, причем каждая строка csv является массивом.Чтение строк csv как массивы - python
Я могу получить каждую строку как массив, но проблема в том, что массив начинается и заканчивается кавычками.
формат данныхрезюме:
User Link,Reputation,DisplayName,Location
353410,"47245","John Doe","Uruguay"
927034,"46782","Jane Doe","Bahia Blanca, Argentina"
Это один из кодов я пытался:
with open('Query_SO_Arg.csv', 'rb') as csvfile:
so = csv.reader(csvfile, delimiter=',', quotechar='"')
so_data = []
so.next()
for row in so:
so_data.append(row)
print so_data
Это выход я получаю:
[['353410,"47245","John Doe","Uruguay";'], ['927034,"46782","Jane Doe","Bahia Blanca, Argentina";'], ['62024,"41775","Jim Doe","Buenos Aires, Argentina";'],
Как я могу построить эта структура, но без внешнего ", поэтому я могу работать с данными?
Спасибо!
EDIT:
Это данные в новый файл CSV (с той же структурой, что и исходный):
User Link,Reputation,DisplayName,Location
60000,"40000","Diego K","Buenos Aires, Argentina"
240000,"37000","Claudio R","Buenos Aires, Argentina"
Это выход я получаю (с той же старой цитата проблемы):
[['60000,"40000","Diego K", "Buenos Aires, Argentina"'], ['240000,"37000","Claudio R","Buenos Aires, Argentina"']]
EDIT 2 , если я использую следующий код:
so = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in so:
print ', '.join(row)
я получаю:
User Link, Reputation, DisplayName, Location
60000,"40000","Diego K","Buenos Aires, Argentina"
240000,"37000","Claudio R","Buenos Aires, Argentina"
данные, кажется, в порядке, за исключением, что нет никаких списков. Означает ли это какое-либо представление о том, почему я не могу правильно переходить к строительным спискам?
EDIT 3: Per @MartijinPieters любезного запроса Я отправляю следующий код:
print repr(open('So_fake_data_test.csv', 'rb').read())
, который выводит:
'User Link,Reputation,DisplayName,Location\r\n"60000,""40000"",""Diego K"",""Buenos Aires, Argentina"""\r\n"240000,""37000"",""Claudio R"",""Buenos Aires, Argentina"""\r\n'
Благодарности @MartijinPieters
EDIT 4
Надеюсь, это поможет. Еще раз спасибо.
Этот код не должен указывать на этот вывод. – DSM
Я не могу воспроизвести вашу проблему. Я отмечаю, что ваш вывод включает в себя * точки с запятой *, которые у вашего ввода нет. –
Все, что вам нужно сделать, это использовать 'list (csv.reader (csvfile))', чтобы получить список списков; диалектическая конфигурация по умолчанию * достаточно *. –