I have a dictionary which has subkeys and sub values. I want to print a list of the main keys that contain a certain value in the subkey. I hope the example makes it clear:
cssStyleDict= {'.c13':{'color':'#000',
'font-family':'"Arial"',
'font-weight':'700',
'vertical-align':'baseline'},
'.c6':{'font-weight':'700'},
'.c7':{'color':'#000',
'font-size':'11pt',
'font-weight':'700',
'text-decoration':'none'},
'.c2':{'background-color':'#ff0'}}
I want to print a list of all keys that contain {'font-weight':'700'}
.
I have tried this:
def getKeysByValue(dictOfElements, valueToFind):
listOfKeys = list()
listOfItems = dictOfElements.items()
for item in listOfItems:
if item[1] == valueToFind:
listOfKeys.append(item[0])
return listOfKeys
listOfKeys = getKeysByValue(cssStyleDict, {'font-weight':'700'} )
for key in listOfKeys:
print(key)
But of course this only gives me an exact match. I've also tried using a regex expression, but to no avail.
The output should be a list containing .c13
.c6
.c7
Thanks in advance if anyone can help.
You can try this way:
>>> [ i for i in cssStyleDict if cssStyleDict[i].get('font-weight') == '700' ]
['.c13', '.c6', '.c7']