簡體   English   中英

如何從 .csv 網絡文件中提取數據並存儲到變量中,並可以選擇稍后將其存儲在數據庫中

[英]how to pul data from a .csv web file and store to a variable with the option to store it later in a database

我開始學習python,需要你的幫助。 我最后一次只用 Matlab 編程。

我想將while循環數據從.csv網絡文件中提取出來,如果日期變量發生變化,則將數據附加到舊數據並將其存儲在(單元格)數組中,稍后可以選擇將其存儲在數據庫中。

所以我在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:49pm', '+0.09', '3.05', '3.25', '3.00', '150988'] ['BA- C.BA', '115.00', '10/21/2015', '11:41am', '+0.00', '115.00', '115.00', '115.00', '100'] ...

正如我在 matlab 中可以理解的那樣,python 將 2 行中的數據保存為數據中的字符串。

1. 問:如何將數據保存在不同變量類型的cellarray中?

2. 問:如何將日期保存為datenum(datenumber)?

3. 問題:如何在沒有'am'或'pm'的情況下更改24小時格式的時間格式,從而將其存儲為時間或雙倍而不是字符串?

4.問題:如何在while循環中pull數據,如果時間改變,程序加載舊存儲的數據(cell-)數組並將新數據加入舊數據(不是覆蓋而是關注舊數據!) ?

謝謝!

嘆。 如果有人發布這樣的指針,您應該做的是使用 Google 查找與“Python”和“pickle”相關的文檔。 在不知道它被稱為泡菜的情況下,找到所需的 python 文檔需要更長的時間。

但是,為了后代的利益,這里是絕對的基礎知識,作為兩個單獨的口譯會話

以允許稍后重新創建對象的方式保存一些 Python 對象(字典和列表結構)的示例

 >>> 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 對象,但不是全部。 列表和字典以及它們的嵌套都很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM