Python 3.x 使用Python3.X从csv文件中提取数字和文本

Python 3.x 使用Python3.X从csv文件中提取数字和文本,python-3.x,csv,numpy,genfromtxt,Python 3.x,Csv,Numpy,Genfromtxt,我试图用python 3.6从csv文件中提取数据。 数据包括数字和文本(其url地址): 在多个论坛上,我发现了这种代码: data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines,) 但这只适用于数字,url地址被读取为NaN 如果添加数据类型: data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines, dtype=N

我试图用python 3.6从csv文件中提取数据。 数据包括数字和文本(其url地址):

在多个论坛上,我发现了这种代码:

data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines,)
但这只适用于数字,url地址被读取为NaN

如果添加数据类型:

data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines, dtype=None)
url地址读取正确,但地址开头有一个“b”,例如:

 b'http://example.com'
我怎样才能去掉它?我怎么能得到简单的文本字符串呢

我还发现了这个选项:

file = open(file_path, "r")
csvReader = csv.reader(file)
for row in csvReader:
    variable = row[i]
    coordList.append(variable)

但是它似乎与python3有一些问题。

这篇文章的答案显示了一个纯Python和一个使用genfromtext混合数据的Numpy解决方案:“但是它似乎与python3有一些问题。”:哪一个是?不要让我们猜测,让我们看看问题所在。(很可能,就像前面的
b
一样,您在Python 3中遇到了unicode问题。您可以转换字节对象
b'http://example.com通过使用
.decode()
方法:
b'http://example.com'.decode()例如,
getfromtxt
读取字节对象的原因是它不知道它是什么类型的文本(无聊的英语、中文或…?),因此它假设它只是一堆字节。转换它取决于您。或者,您可以尝试在
genfromtxt
中指定数据类型,使用例如
'U80'
,事情可能会更好。另请参见。
b
仅表示
genfromtxt
已将字符串作为bytestring加载。Py3中的默认字符串类型为
unicode
。在Py2中,默认值为bytestring。查看
数据.dtype
。文本字段将具有
Sn
类型。如果是unicode,则具有
Un
。可以指定
dtype
(而不是authomatic
None
)对于
U
类型,如果
b
真的困扰您,请键入。对于许多用途,字符串是unicode还是byte并不重要。这一个的答案显示了一个纯Python和一个使用genfromtext混合数据的Numpy解决方案:“但它似乎与python3有一些问题。”:哪些是?不要让我们猜测,展示问题。(很可能,就像前面的
b
一样,您在Python 3中遇到了unicode问题。您可以转换字节对象
b'http://example.com通过使用
.decode()
方法:
b'http://example.com'.decode()例如,
getfromtxt
读取字节对象的原因是它不知道它是什么类型的文本(无聊的英语、中文或…?),因此它假设它只是一堆字节。转换它取决于您。或者,您可以尝试在
genfromtxt
中指定数据类型,使用例如
'U80'
,事情可能会更好。另请参见。
b
仅表示
genfromtxt
已将字符串作为bytestring加载。Py3中的默认字符串类型为
unicode
。在Py2中,默认值为bytestring。查看
数据.dtype
。文本字段将具有
Sn
类型。如果是unicode,则具有
Un
。可以指定
dtype
(而不是authomatic
None
)如果
b
真的困扰您,请使用
U
类型。对于许多用途,字符串是unicode还是byte并不重要。
file = open(file_path, "r")
csvReader = csv.reader(file)
for row in csvReader:
    variable = row[i]
    coordList.append(variable)