gpt4 book ai didi

Python CSV 阅读器将行作为列表返回

转载 作者:太空狗 更新时间:2023-10-29 22:27:09 26 4
gpt4 key购买 nike

我正在尝试使用 python 解析 CSV,并希望能够索引一行中的项目,以便可以使用 row[0]row[1] 等等。

到目前为止,这是我的代码:

def get_bitstats():
url = 'http://bitcoincharts.com/t/trades.csv?symbol=mtgoxUSD'
data = urllib.urlopen(url).read()
dictReader = csv.DictReader(data)
obj = BitData()
for row in dictReader:

obj.datetime = datetime.datetime.fromtimestamp(int(row['0'])/1000000)
q = db.Query(BitData).filter('datetime', obj.datetime)
if q != None:
raise ValueError(obj.datetime + 'is already in database')
else:
obj.price = row['1']
obj.amount = row['2']
obj.put()

这会返回 KeyError: '0' 并且我不知道如何设置它。我确实将其输入到交互式 shell 中并在运行时

for row in dictReader:
print row

我得到这个作为输出:

{'1': '3'}
{'1': '6'}
{'1': '2'}
{'1': '6'}
{'1': '9'}
{'1': '8'}
{'1': '6'}
{'1': '4'}
{'1': '4'}
{'1': '', None: ['']}
{'1': '4'}
{'1': '2'}
{'1': '.'}
{'1': '0'}
{'1': '5'}
{'1': '7'}
{'1': '1'}
{'1': '6'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '', None: ['']}
{'1': '0'}
{'1': '.'}
{'1': '0'}
{'1': '1'}
{'1': '0'}
{'1': '0'}
{'1': '5'}
{'1': '4'}
{'1': '2'}
{'1': '5'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '0'}
{'1': '1'}
{'1': '3'}
{'1': '6'}
{'1': '2'}
{'1': '6'}
{'1': '9'}
{'1': '8'}
{'1': '6'}
{'1': '4'}
{'1': '4'}

等等,数以千计的行。 (因为我确定 CSV 是数千位数字)

为什么我的 CSV 以这种方式打印,是否可以将一行分隔成 3 个 int 的列表,例如 [130534543, 47.00009, 23001.9000]

编辑:

正如答案所述,我在上面的代码中使用了错误的 csv 函数,但即使修复它也给了我一个列表,列表本身的格式与 dict 相同,因此:

['1']
['2']
['1']
['3']
['8']
['3']
['5']
.
.
.

事实证明,我还必须从 data = urllib.urlopen(url).read() 中删除 .read()

最佳答案

csv.reader将每一行作为列表返回

reader = csv.reader(data)

for line_list in reader:
pass
# line_list is a list of the data contained in a row so you can access line_list[0]

关于Python CSV 阅读器将行作为列表返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15374430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com