2015-10-17 83 views
-1

下面的代碼將打印出我需要的拍賣信息,但是我希望能夠打印出一個項目值(例如itemType,rating)。從Python中的字典鍵獲取價值

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}] 
+2

你在找哪個值? – inspectorG4dget

+0

@ inspectorG4dget tradeId是我需要的值 – Martin

+1

@Martin:'mydict ['auctionInfo'] ['tradeId']'。 – GingerPlusPlus

回答

1

json調用返回的值是一個嵌套的字典。你只需要索引每個級別來獲得你想要的物品。由於auctionInfo值的頂層是一個元素列表中,你需要使用[0]獲得其實際內容:

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

謝謝你的解釋 – Martin

0

這應該工作:

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

這個工程:

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

您可以更改「 tradeId「用任意鍵找到它的值

+0

這個解決方案是過量的。 – GingerPlusPlus

+0

但它的工作原理!我認爲它更通用!無論如何,只要解決方案,我承認其他答案更好 – Mark