首页 > 解决方案 > 试图从 Python 中的字典列表中提取特定数据。(使用罗宾股票)

问题描述

所以我正在使用 robin-stocks api,我试图从提供的函数中提取特定数据。

我打印时的输出:

positions = r.crypto.get_crypto_positions()

是:

[{'account_id': 'removed', 'cost_bases': [{'currency_id': 'removed', 'direct_cost_basis': '0.110000000000000000', 'direct_quantity': '0.000011050000000000', 'id': 'removed', 'intraday_quantity': '0.000000000000000000', 'intraday_cost_basis': '0.000000000000000000', 'marked_cost_basis': '0.000000000000000000', 'marked_quantity': '0.000000000000000000'}], 'created_at': '2020-05-07T20:44:23.510080-04:00', 'currency': {'brand_color': 'EA963D', 'code': 'BTC', 'id': 'removed', 'increment': '0.000000010000000000', 'name': 'Bitcoin', 'type': 'cryptocurrency'}, 'id': 'removed', 'quantity': '0.000011050000000000', 'quantity_available': '0.000011050000000000', 'quantity_held_for_buy': '0.000000000000000000', 'quantity_held_for_sell': '0.000000000000000000', 'updated_at': '2020-05-07T23:40:34.381524-04:00'}]

这是他们网站上关于此的文档:

robin_stocks.crypto.get_crypto_positions(info=None)[source]

返回账户的加密头寸。

参数: info (Optional[str]) - 将过滤结果以获取特定值。返回:返回每个选项的键/值对字典列表。如果提供了 info 参数,则返回字符串列表,其中字符串是与 info 匹配的键的值。

我在这里的目标是获得'direct_cost_basis'. 我怎样才能做到这一点?我在 python 方面相当不错,但这只是我的头脑。

标签: pythonpython-3.xlistdictionary

解决方案


positions是一个字典列表。您可以访问列表中的第一个元素

positions[0]

direct_cost_basis似乎位于列表中的 dict 中,该列表由 键控,cost_bases位于 的第一个元素中positions。所以:

positions[0]["cost_bases"][0]["direct_cost_basis"]

会产生你想要的。

作为调试过程的一部分,在 Python 中打印某些内容时,还可以打印type(positions)返回的对象的“类型” list。您可以一直使用它来确定如何访问这些数据类型。您还可以dir(positions)在任何 Python 对象上调用该函数,它会告诉您该对象的属性和方法。


推荐阅读