在Python2.7中,如何从这个看起来像“列表”的东西中获取数据

2024-10-01 04:47:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个实现股票数据的项目(它是用python2.7编写的)。我使用的模块(yahoo financehttps://pypi.python.org/pypi/yahoo-finance)将以以下格式返回历史数据:

print yahoo.get_historical('2014-04-25', '2014-04-29')
[{u'Volume': u'28720000', u'Symbol': u'YHOO', u'Adj_Close': u'35.83', u'High': u'35.89', u'Low': u'34.12', u'Date': u'2014-04-29', u'Close': u'35.83', u'Open': u'34.37'}, {u'Volume': u'30422000', u'Symbol': u'YHOO', u'Adj_Close': u'33.99', u'High': u'35.00', u'Low': u'33.65', u'Date': u'2014-04-28', u'Close': u'33.99', u'Open': u'34.67'}, {u'Volume': u'19391100', u'Symbol': u'YHOO', u'Adj_Close': u'34.48', u'High': u'35.10', u'Low': u'34.29', u'Date': u'2014-04-25', u'Close': u'34.48', u'Open': u'35.03'}]

有什么方法可以像列表一样解析这些数据吗?我不认识它的格式。有没有什么简单的方法可以把今天的高点分开?我想把它做成一根绳子然后用

^{pr2}$

但我知道一定有更好的办法。希望我错过了一些简单的事情。在


Tags: 数据方法pypiclosedate格式opensymbol
2条回答

为什么不使用诸如:for dayData in dict这样的语法来分隔每天的值,并在for循环中用dayDict['Volume']之类的东西进行处理呢。然后,您只需将任何细节添加到循环外部的主数组中,以便在以后的代码中进行进一步的处理或分析。在

这是一个由三个项目组成的清单。更容易看到是否使用pprint.pprint()模块函数:

[{u'Adj_Close': u'35.83',
  u'Close': u'35.83',
  u'Date': u'2014-04-29',
  u'High': u'35.89',
  u'Low': u'34.12',
  u'Open': u'34.37',
  u'Symbol': u'YHOO',
  u'Volume': u'28720000'},

 {u'Adj_Close': u'33.99',
  u'Close': u'33.99',
  u'Date': u'2014-04-28',
  u'High': u'35.00',
  u'Low': u'33.65',
  u'Open': u'34.67',
  u'Symbol': u'YHOO',
  u'Volume': u'30422000'},

 {u'Adj_Close': u'34.48',
  u'Close': u'34.48',
  u'Date': u'2014-04-25',
  u'High': u'35.10',
  u'Low': u'34.29',
  u'Open': u'35.03',
  u'Symbol': u'YHOO',
  u'Volume': u'19391100'}]

你可以这样读:

^{pr2}$

当天的最高点可能是:

high_reading = max(readings, key=lambda reading: float(reading['High']))

(这是max()函数,它返回序列中最大的东西,提供了一个自定义函数,用来说明在比较项时应该看什么)。在

相关问题 更多 >