簡體   English   中英

如何使用 python 中的鍵從字典中僅獲取特定值

[英]how to get only specific values from dictionary using key in python

I have this kind of 50 dictionary 意味着我有超過 50 種不同值的字典。 symbol和其他鍵值。

我只想在列表中獲取symbolopen值。

{'pricebandupper': 380.65, 'symbol': 'ADANIPORTS', 'applicableMargin': 40.0, 'bcEndDate': '26-JUN-20', 'totalSellQuantity': None, 'adhocMargin': 18.19, 'companyName': 'Adani Ports and Special Economic Zone Limited', 'marketType': 'N', 'exDate': '17-JUN-20', 'bcStartDate': '19-JUN-20', 'css_status_desc': 'Listed', 'dayHigh': 349.75, 'basePrice': 346.05, 'securityVar': 18.31, 'pricebandlower': 311.45, 'sellQuantity5': None, 'sellQuantity4': None, 'sellQuantity3': None, 'cm_adj_high_dt': '10-JUN-19', 'sellQuantity2': None, 'dayLow': 340.4, 'sellQuantity1': None, 'quantityTraded': 2095819.0, 'pChange': 0.69, 'totalTradedValue': 8017.47, 'deliveryToTradedQuantity': 21.32, 'totalBuyQuantity': 2730.0, 'averagePrice': 344.84, 'indexVar': None, 'cm_ffm': 26717.33, 'purpose': 'ANNUAL GENERAL MEETING', 'buyPrice2': None, 'secDate': '10-Jun-2020 15:00:00', 'buyPrice1': 346.55, 'high52': 429.5, 'previousClose': 346.05, 'ndEndDate': None, 'low52': 203.0, 'buyPrice4': None, 'buyPrice3': None, 'recordDate': None, 'deliveryQuantity': 446896.0, 'buyPrice5': None, 'priceBand': 'No Band', 'extremeLossMargin': 3.5, 'cm_adj_low_dt': '23-MAR-20', 'varMargin': 18.31, 'sellPrice1': None, 'sellPrice2': None, 'totalTradedVolume': 2324983.0, 'sellPrice3': None, 'sellPrice4': None, 'sellPrice5': None, 'change': 2.4, 'surv_indicator': None, 'ndStartDate': None, 'buyQuantity4': None, 'isExDateFlag': False, 'buyQuantity3': None, 'buyQuantity2': None, 'buyQuantity1': 2730.0, 'series': 'EQ', 'faceValue': 2.0, 'buyQuantity5': None, 'closePrice': 0.0, 'open': 346.05, 'isinCode': 'INE742F01042', 'lastPrice': 348.45}

我試過的:

symbol = data['symbol']
open = data['open']

這里的數據就是上面提到的字典。 請幫忙。 是幾個詞典的示例。

(我已經更新了這個答案,並假設字典存儲在一個數組中)。

# So you a file with list having 50 dictionaries like this
[ {}, {}, {}, {}, {} ]

為了解決這個問題,我們將遍歷數組,並獲得一個索引,然后從字典列表的每個索引中獲取值:

'''
Assuming the list goes like this
list_data = [{}, {}, {}, {}] having you dictionary only, I am just showing it 
for the sake of understanding
'''
list_data = [{}, {}, {} ....]
new_list = [] # where you want to store the result

# traversing through each dict item in list_data
# dictionary.get(key) is very famously used for getting exact key's value
# Read more about dictionaries here: 
# https://www.w3schools.com/python/python_dictionaries.asp
for i in range(len(list_data)):
    #assuming that every dictionary has the key 'symbol' and 'open'
    new_list.append([list_data[i].get('symbol'), list_data[i].get('open')])

print(new_list)

# Output will be consisting the array of array, like this
# [ ['ADANIPORTS', 346.05], .... ] since every dictionary should show up it's 
# symbol and open value uniquely
# ..... => This is for more values
>>> [['ADANIPORTS', 346.05], ..... ]

你可以嘗試這個不確定你想要什么:

data = {'pricebandupper': 380.65, 'symbol': 'ADANIPORTS', 'applicableMargin': 40.0, 'bcEndDate': '26-JUN-20', 'totalSellQuantity': None, 'adhocMargin': 18.19, 'companyName': 'Adani Ports and Special Economic Zone Limited', 'marketType': 'N', 'exDate': '17-JUN-20', 'bcStartDate': '19-JUN-20', 'css_status_desc': 'Listed', 'dayHigh': 349.75, 'basePrice': 346.05, 'securityVar': 18.31, 'pricebandlower': 311.45, 'sellQuantity5': None, 'sellQuantity4': None, 'sellQuantity3': None, 'cm_adj_high_dt': '10-JUN-19', 'sellQuantity2': None, 'dayLow': 340.4, 'sellQuantity1': None, 'quantityTraded': 2095819.0, 'pChange': 0.69, 'totalTradedValue': 8017.47, 'deliveryToTradedQuantity': 21.32, 'totalBuyQuantity': 2730.0, 'averagePrice': 344.84, 'indexVar': None, 'cm_ffm': 26717.33, 'purpose': 'ANNUAL GENERAL MEETING', 'buyPrice2': None, 'secDate': '10-Jun-2020 15:00:00', 'buyPrice1': 346.55, 'high52': 429.5, 'previousClose': 346.05, 'ndEndDate': None, 'low52': 203.0, 'buyPrice4': None, 'buyPrice3': None, 'recordDate': None, 'deliveryQuantity': 446896.0, 'buyPrice5': None, 'priceBand': 'No Band', 'extremeLossMargin': 3.5, 'cm_adj_low_dt': '23-MAR-20', 'varMargin': 18.31, 'sellPrice1': None, 'sellPrice2': None, 'totalTradedVolume': 2324983.0, 'sellPrice3': None, 'sellPrice4': None, 'sellPrice5': None, 'change': 2.4, 'surv_indicator': None, 'ndStartDate': None, 'buyQuantity4': None, 'isExDateFlag': False, 'buyQuantity3': None, 'buyQuantity2': None, 'buyQuantity1': 2730.0, 'series': 'EQ', 'faceValue': 2.0, 'buyQuantity5': None, 'closePrice': 0.0, 'open': 346.05, 'isinCode': 'INE742F01042', 'lastPrice': 348.45}

result = []

result.append(data['symbol'])
result.append(data['open'])

print(result)

雖然您沒有指定您希望 output 的確切格式。假設您想要列表中某些鍵的所有值,下面是您可以使用的示例代碼。

inp_dict = {1:2,3:4} keys = [1,3] output_lis = [a.get(i) for i in b]

dictionary[key]也被使用,但是 'get' 內置 function 允許您在缺少鍵的情況下提供默認值。

dictionary.get(key[, default])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM