[Tutor] How to get the keys of a dict inside a dict. ValueError: too many values to unpack
Knacktus
knacktus at googlemail.com
Sun Aug 7 18:40:16 CEST 2011
Am 07.08.2011 17:37, schrieb Kayode Odeyemi:
> Hello all,
>
> Please I need help figuring out this permutation.
>
> I have a dict like this:
>
> x = "{'pk': 1L, 'model': 'trans', 'fields': {'updated': 2011, 'tel':
> 3456}", "{'pk': 2L, 'model': 'trans2', 'fields': {'updated': 2011,
> 'tel': 34510}";
This is not a dict, it's a tuple of two strings. (By the way, the ";" is
only needed if you would want to place several statements in one line,
which you shouldn't do.)
A tuple of dicts would be:
x = {'pk': 1L, 'model': 'trans', 'fields': {'updated': 2011, 'tel':
3456}}, {'pk': 2L, 'model': 'trans2', 'fields': {'updated': 2011, 'tel':
34510}}
Note the additional closing "}" for each entry. You can loop over the
entries of your tuple and check the type:
for entry in x:
print type(entry)
Now you can extend this loop and loop over the keys and values for each
entry:
for entry in x:
for key, value in entry.items():
print key
print value
If key is "fields" then value is another dictionary. So if you wish you
could also get the entries of those dicts explicitly:
for entry in x:
for key, value in entry.items():
print key
if key == "fields":
for field_key, field_value in value.items():
print " %s" % field_key
print " %s" % field_value
else:
print " %s" % value
For string formatting used here see:
http://docs.python.org/library/stdtypes.html#string-formatting-operations
HTH,
Jan
>
> #loop through and get the keys of each
> for k,v in x:
> keys = dict(x).keys()
> print keys
>
> I get ValueError: too many values to unpack
>
> Any help will be much appreciated.
>
> Regards
>
>
> --
> Odeyemi 'Kayode O.
> http://www.sinati.com. t: @charyorde
>
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list