如何从.csv web文件中提取数据并存储到变量,并选择稍后将其存储在数据库中

时间:2015-10-29 09:57:21

标签: python

我开始学习python并需要你的帮助。我上次只用Matlab编程。

我希望将一个while循环数据形成一个.csv web文件,如果日期变量发生变化,将数据附加到旧数据并将其存储在(cell-)数组中,稍后将该选项存储在数据库中。

所以我在python中的代码:

import csv
import urllib.request

url = "http://download.finance.yahoo.com/d/quotes.csv?s=AGRO.BA,PR15.BA,&f=sl1d1t1c1ohgv&e=.csv"
ftpstream = urllib.request.urlopen(url)
csvfile = csv.reader(ftpstream.read().decode('utf-8')) #with the appropriate encoding
data = [row for row in csvfile]

输出为: (数据表示:刻度,值,日期,时间,变化,平均值,高,低,值)

[' AGRO.BA',' 3.14',' 10/28/2015',' 4:49 pm&#39 ;,' + 0.09',' 3.05',' 3.25',' 3.00',' 150988&#39 ] [' BA-C.BA',' 115.00',' 10/21/2015',' 11:41 am',&# 39; + 0.00',' 115.00',' 115.00',' 115.00',' 100'] ..

正如我在matlab中可以理解的那样,python将数据保存为2行,作为数据中的字符串。

1。问题: 如何将其保存在具有不同变量类型的cellarray中的数据中?

2。问题: 如何将日期保存为datenum(datenumber)?

第3。问题: 如何在没有' am'的情况下更改24小时格式的时间格式?或者' pm'所以把它存储为时间或双倍而不是字符串?

4。问题: 如何在while循环中拨打数据,如果时间发生变化,程序会加载旧的存储数据(cell-)数组并将新数据传入旧数据(不会覆盖,但要注意旧数据!)?

谢谢!

1 个答案:

答案 0 :(得分:2)

叹息。如果有人发布这样的指针,你应该做什么,是使用谷歌查找与“Python”和“泡菜”有关的文件。如果不知道它被称为pickle,那么找到你需要的python文档需要更长的时间。

然而,为了后代的利益,这里是绝对的基础知识,作为两个独立的翻译会议

保存一些Python对象(dict和list-structure)的示例,允许稍后重新创建对象

 >>> d=dict(a=1,c=3,e=5)
 >>> d
 {'a': 1, 'c': 3, 'e': 5}
 >>> L=['hello','goodbye',['a','list','in','a','list']]

 >>> f = open('temp.tmp','wb')  # open a pickle file
 >>> import pickle
 >>> pickle.dump( d, f)  # save d to the pickle file
 >>> pickle.dump( L, f)  # followed by 
 >>> f.close()

然后退出。现在可以通过另一个Python程序读回文件中的内容。请注意,pickle协议有多个版本,因此如果您想要读取不同版本的Python,那么您可能需要找到有关pickle的可选protocol参数的信息。功能。除此之外,让我们读一下这个文件......

>>> import pickle 
>>> f=open('temp.tmp','rb')
>>> something=pickle.load(f)
>>> something
{'c': 3, 'a': 1, 'e': 5}
>>> something2 = pickle.load(f)
>>> something2
['hello', 'goodbye', ['a', 'list', 'in', 'a', 'list']]
>>> 

你可以挑选大多数Python对象但不是全部。它们的名单和词汇以及它们都很好。