1
我對所提到的一切都很陌生。我的目標是從YQL獲取一些財務數據並插入到MySQL中,這是通過python調用完成的。因此,提出如下.py文件:Python將YQL結果提取到MySQL中
import mysql.connector
import yahoo.yql
cnx = mysql.connector.connect(user='conn', password='abc123', database='yahoodata')
cursorA = cnx.cursor()
cursorB = cnx.cursor()
## Firstly, read all Symbol as an array in python
myquery = ("SELECT Symbol FROM yahoodata.nasdaq100list")
cursorA.execute(myquery)
myresult = cursorA.fetchall()
## Query YQL with each Symbol, literally loop 100 times
for i in myresult:
yquery = 'select Symbol,Date,High,Low from yahoo.finance.historicaldata where symbol = "%s" and startDate = "2014-01-01" and endDate = "2014-12-31"' % i
yresult = yahoo.yql.YQLQuery().execute(yquery)
## Insert Data from YQL fetch to MySQL
insert = "INSERT INTO daily_avg_2014(Symbol,Date,High,Low) VALUES (%(symbol)s, %(date)s, %(high)s, %(low)s)"
cursorB.executemany(insert, yresult)
cursor.close()
cnx.close()
YQL成功返回JSON格式的數據。但是,INSERT將繼續說「mysql.connector.errors.ProgrammingError:並非所有參數都用在SQL語句中」
當回顧實際插入到MySQL的內容時,我發現格式不正確JSON,因爲我將它們放入一個字符串列表/陣列
>>> print yresult
{u'query': {u'count': 252, u'lang': u'en-US', u'results': {u'quote': [{u'High': u'51.68', u'Date': u'2014-12-31', u'Symbol': u'YHOO', u'Low': u'50.459999'},
正如我理解,YQL似乎做得很好返回結果我需要的JSON格式,但我的Python的濫用沒有得到它的權利,因此不能插入到MySQL中。任何意見表示讚賞。謝謝。
FYI也試過json.loads >>> json_str = json.loads(yresult) 回溯(最近通話最後一個): 文件「 「,第1行,在 文件」/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py「,第338行,載入中 'return _default_decoder.decode( s) 文件「/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder。 py「,第366行,解碼爲 obj,end = self.raw_decode(s,idx = _w(s,0).end()) TypeError:期望的字符串或緩衝區 –
MagnusTheStrong