繁体   English   中英

从 Python 中的字典键获取值

[英]Get a value from a dictionary key in Python

下面的代码将打印出我需要的拍卖信息,但是我希望能够只打印出一个项目值(例如 itemType 、 rating)。

page = requests.get('https://utas.s2.fut.ea.com/ut/game/fifa16/transfermarket?num=16&leag=13&type=player&start=0&lev=silver&maxb=200', headers=headers, cookies=cookies)
mydict  = page.json()
print mydict['auctionInfo']

这将输出以下json。 我怎样才能只提取一个值?

[{u'sellerEstablished': 0, u'itemData': {u'rating': 69, u'itemType': u'player', u'resourceId': -2147297053, u'cardsubtypeid': 2, u'morale': 50, u'lifetimeAssists': 1, u'id': 241577723458, u'statsList': [{u'index': 0, u'value': 8}, {u'index': 1, u'value': 0}, {u'index': 2, u'value': 0}, {u'index': 3, u'value': 0}, {u'index': 4, u'value': 0}], u'assetId': 186595, u'teamid': 1792, u'pile': 5, u'suspension': 0, u'rareflag': 0, u'playStyle': 250, u'attributeList': [{u'index': 0, u'value': 82}, {u'index': 1, u'value': 64}, {u'index': 2, u'value': 67}, {u'index': 3, u'value': 69}, {u'index': 4, u'value': 48}, {u'index': 5, u'value': 57}], u'loyaltyBonus': 0, u'timestamp': 1443317273, u'training': 0, u'nation': 82, u'assists': 1, u'formation': u'f433', u'lifetimeStats': [{u'index': 0, u'value': 8}, {u'index': 1, u'value': 0}, {u'index': 2, u'value': 0}, {u'index': 3, u'value': 0}, {u'index': 4, u'value': 0}], u'leagueId': 13, u'untradeable': False, u'discardValue': 104, u'owners': 3, u'injuryGames': 0, u'contract': 10, u'injuryType': u'leg', u'lastSalePrice': 800, u'fitness': 75, u'itemState': u'forSale', u'preferredPosition': u'RM'}, u'tradeId': 159824505381, u'confidenceValue': 100, u'sellerName': u'FIFA UT', u'expires': 3581, u'buyNowPrice': 200, u'tradeOwner': False, u'offers': 0, u'startingBid': 150, u'watched': None, u'currentBid': 0, u'tradeState': u'active', u'bidState': u'none', u'sellerId': 0}]

json调用返回的值是一个嵌套字典。 您只需要索引每个级别即可获得所需的项目。 由于auctionInfo值的顶层是一个单元素列表,您需要使用[0]来获取其实际内容:

print mydict['auctionInfo'][0]['itemData']['itemType']
print mydict['auctionInfo'][0]['itemData']['rating']
print mydict['auctionInfo'][0]['tradeId']

这应该有效:

print mydict['auctionInfo']['tradeId']

这有效:

for i in range(len(mydict)):
try:
    for key, value in mydict[i].items():
        if key == "tradeId":
            print value
except:
    pass

您可以使用任何键更改“tradeId”以查找其值

暂无
暂无

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

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