python - 试图从 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 方面相当不错,但这只是我的头脑。
解决方案
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 对象上调用该函数,它会告诉您该对象的属性和方法。
推荐阅读
- python - 为 pandas 中的每个组分配一个等级
- angular - Recaptcha google 上 Angular 6 的实现
- php - 从 php 中的站点中删除 index.php
- javascript - Meteor + LitElement (Polymer 3) 导入问题
- azure - Azure Key Vault 中的最大机密数?
- android - 为什么使用“--prod --release android”构建的 Ionic 3 apk 会给 Google Playstore 错误,即 apk 在调试模式下签名?
- javascript - 使用 javascript 的删除数据功能只能工作一次
- tfs - 从 TFS 2017 中的 AreaID 获取区域详细信息
- javascript - 使用 JavaScript 拦截网页中接收到的数据
- django - 使用 Django ManyToManyField 检查实例是否存在