在Python 3中在线读取CSV文件中的数据

在Python 3中在线读取CSV文件中的数据,python,csv,Python,Csv,只是作为练习来测试一些东西。我有这个巨大的CSV文件在线 我想读取所有的数据,然后把它放到一个表格里,这样我就可以进行分析并制作表格。 到目前为止,我的代码是使用其他StackOverflow问题和其他网站组合而成的,但似乎发生的是当它被阅读时,然后立即再次逐字打印出来,因此我得到: ['C'] ['o'] ['u'] ['n'] ['t'] ['r'] ['y'] [' '] ['N'] ['a'] ['m'] ['e'] ['', ''] ['C'] ['o'] ['u'] ['n'] ['

只是作为练习来测试一些东西。我有这个巨大的CSV文件在线 我想读取所有的数据,然后把它放到一个表格里,这样我就可以进行分析并制作表格。 到目前为止,我的代码是使用其他StackOverflow问题和其他网站组合而成的,但似乎发生的是当它被阅读时,然后立即再次逐字打印出来,因此我得到:

['C']
['o']
['u']
['n']
['t']
['r']
['y']
[' ']
['N']
['a']
['m']
['e']
['', '']
['C']
['o']
['u']
['n']
['t']
['r']
['y']
[' ']
['C']
['o']
['d']
['e']
['', '']
['Y']
['e']
['a']
['r']
['', '']
['V']
['a']
['l']
['u']
['e']
[]
[]
['A']
['r']
['a']
['b']
[' ']
['W']
['o']
['r']
['l']
['d']
['', '']
到目前为止,我的代码是:

import csv
import urllib.request

url = "https://raw.github.com/datasets/gdp/master/data/gdp.csv"
webpage = urllib.request.urlopen(url)
datareader = csv.reader(webpage.read().decode('utf-8'))
data = []
for row in datareader:
    data.append(row)

for row in data:
    print(row)
我如何修改它,使它实际上逐行读取,然后甚至将该行拆分为不同的变量。我在使用之前做过这个

payRollNumber, salary, jobTitle, otherNames, \
               surname = line.strip().split(',')

我可以在得到行之后应用这个。有什么想法吗?

在将读取的CSV数据传递到
CSV.reader()之前,您需要将其按行拆分:

然后,
csv.reader()
会为您处理其余部分

您还可以负责阅读、解码和线路处理:

import csv
import io
import urllib.request

url = "https://raw.github.com/datasets/gdp/master/data/gdp.csv"
webpage = urllib.request.urlopen(url)
datareader = csv.reader(io.TextIOWrapper(webpage))
在读卡器上循环并向列表中添加行几乎没有意义;你可以这样做:

data = list(datareader)
相反,如果您只想打印列,请直接在读卡器上循环并执行以下操作:

datareader = csv.reader(io.TextIOWrapper(webpage))
for row in datareader:
    print(row)
无论哪种方式,通过自己拆分行或使用
TextIOWrapper
,代码现在生成:

['Country Name', 'Country Code', 'Year', 'Value']
['Arab World', 'ARB', '1968', '32456179321.45']
['Arab World', 'ARB', '1969', '35797666653.6002']
['Arab World', 'ARB', '1970', '39062044200.4362']
['Arab World', 'ARB', '1971', '45271917893.3429']
['Arab World', 'ARB', '1972', '54936622019.8224']
['Arab World', 'ARB', '1973', '69564884441.8264']
['Arab World', 'ARB', '1974', '132123836511.468']
['Arab World', 'ARB', '1975', '147666389454.913']
['Arab World', 'ARB', '1976', '182208407088.856']
# ... etc. ...
['Country Name', 'Country Code', 'Year', 'Value']
['Arab World', 'ARB', '1968', '32456179321.45']
['Arab World', 'ARB', '1969', '35797666653.6002']
['Arab World', 'ARB', '1970', '39062044200.4362']
['Arab World', 'ARB', '1971', '45271917893.3429']
['Arab World', 'ARB', '1972', '54936622019.8224']
['Arab World', 'ARB', '1973', '69564884441.8264']
['Arab World', 'ARB', '1974', '132123836511.468']
['Arab World', 'ARB', '1975', '147666389454.913']
['Arab World', 'ARB', '1976', '182208407088.856']
# ... etc. ...