将csv行读取为数组- python

vxbzzdmp  于 2023-07-31  发布在  Python
关注(0)|答案(3)|浏览(80)

我有一个4列的csv文件,想创建一个python数组列表,每个csv行都是一个数组。
我可以将每一行作为一个数组,但问题是数组以引号开始和结束。
cvs数据格式:

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";'],


如何在没有外部“”的情况下构建此结构,以便可以使用数据?
谢谢你,谢谢
编辑:
这是一个全新的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"']]


如果我使用以下代码,请编辑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"


数据似乎还可以,除了没有列表。这是否给出了任何线索,为什么我不能正确地移动到建筑列表?
编辑3:Per@MartijinPieters kind request I am posting the following code:

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
编辑4


的数据
希望这能帮上忙。再次感谢你。

9jyewag0

9jyewag01#

这对我来说很有用(Python 3.4):

import csv
with open('Query_SO_Arg.csv', 'r') as csvfile:
    so = csv.reader(csvfile, delimiter=',', quotechar='"')
    so_data = []
    for row in so:
        so_data.append(row)

    print(so_data[1:])

字符串
输出为:

[['353410', '47245', 'John Doe', 'Uruguay '], ['927034', '46782', 'Jane Doe', 'Bahia Blanca, Argentina ']]

5fjcxozz

5fjcxozz2#

最后我找到了解决办法。
这个神秘的问题与代码或数据本身无关,而是与Excel保存原始下载数据的方式有关。
这就是我在做的:下载包含原始数据的csv文件,在Excel中打开并将其保存为可识别的名称。
这是我找到的解决方案:下载csv文件,转到Windows资源管理器并重命名该文件。
有了这个基本操作和下面的代码,一切都很好:

so = csv.reader(csvfile, delimiter=',', quotechar='"')
so = list(so)

字符串
感谢您的所有输入,特别是@MartijnPieters!

tzcvj98z

tzcvj98z3#

在Python 3.11.1中测试

import numpy as np
    
# row = f.getline()   
row = "1.1,2.2,3.3,4.4,5.5\n"
row_arr = np.asarray([float(i) for i in row.replace('\n','').split(',')])
print(row_arr)

字符串

相关问题