繁体   English   中英

在Python中从字典中提取值

[英]Extracting values from a dictionary in Python

对于潜在的无聊问题道歉,我被困住了。 我想从列表中的字典中打印出一些值,这些值在另一个名为“match”的字典中打印出来。 字典看起来如下,因为你可以看到它有点像一个雷区。 该词典介绍了Betfair在两个玩家之间的高尔夫投注市场,“Rose”和“Garth Mulroy”。 这是我要提取的这两个字符串。 任何帮助非常感谢!

match = bot.get_market(matches[0])
from pprint import pprint
pprint(match)

{'bspMarket': 'false',
 'countryISO3': 'ZAF',
 'couponLinks': '',
 'discountAllowed': 'true',
 'eventTypeId': '3',
 'event_ids': ['3', '26909125', '26930851'],
 'interval': '0.0',
 'lastRefresh': '1354218248109',
 'licenceId': '1',
 'marketBaseRate': '5.0',
 'marketDescriptionHasDate': 'true',
 'marketDisplayTime': '2012-11-30T09:10:00.000Z',
 'marketId': '107625660',
 'marketStatus': 'ACTIVE',
 'marketSuspendTime': '2012-11-30T09:10:00.000Z',
 'marketTime': '2012-11-30T09:10:00.000Z',
 'marketType': 'O',
 'marketTypeVariant': 'D',
 'maxUnitValue': '0.0',
 'menuPath': '\\Group B\\Nedbank Challenge 2012\\2nd Round 2 Balls',
 'minUnitValue': '0.0',
 'name': 'Rose',
 'numberOfWinners': '1',
 'parentEventId': '26930851',
 'runners': [{'asian_line_id': '0',
              'handicap': '0.0',
              'name': 'Justin Rose',
              'selection_id': '2078854'},
             {'asian_line_id': '0',
              'handicap': '0.0',
              'name': 'Garth Mulroy',
              'selection_id': '2235937'},
             {'asian_line_id': '0',
              'handicap': '0.0',
              'name': 'Tie',
              'selection_id': '39905'}],
 'runnersMayBeAdded': 'false',
 'timezone': 'RSA',
 'unit': ''}

我的尝试:

match = bot.get_market(matches[0])
for runners in match:
    print runners['name']

产生错误:

Traceback (most recent call last):
  File "C:/Python27/bots/test.py", line 31, in <module>
    print runners['name']
TypeError: string indices must be integers, not str

如果您的原始字典名为original_dict ,则original_dict[runners]会提供跑步者列表。

runner_list = original_dict["runners"]
for runner in runner_list:
   name_you_are_looking_for = runner["name"]

虽然解析起来非常困难,但您可能希望以更容易理解的方式组织数据。 无论如何,将来请发布更多代码,以便我们更好地了解您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM