I\'m learning python and i loop like this the json converted to dictionary: it works but is this the correct method? Thank you :)
import json
output_file =
That seems generally fine.
There's no need to first read the file, then use loads. You can just use load directly.
output_json = json.load(open('/tmp/output.json'))
Using i and k isn't correct for this. They should generally be used only for an integer loop counter. In this case they're keys, so something more appropriate would be better. Perhaps rename i
as container
and k
as stream
? Something that communicate more information will be easier to read and maintain.
You can use output_json.iteritems()
to iterate over both the key and the value at the same time.
for majorkey, subdict in output_json.iteritems():
print majorkey
for subkey, value in subdict.iteritems():
print subkey, value
Note that, when using Python 3, you will need to use items() instead of iteritems(), as it has been renamed.
json_data = json.loads(url)
If list is there, then iterate:
for majorkey, subdict in json_data.iteritems():
for one_majorkey in subdict:
for subkey, value in one_majorkey.iteritems():
for each_subkey, valu_U in value.iteritems():
for each_sub_subkey, value_Q in valu_U.iteritems():
for each_sub_sub_subkey, value_num in value_Q.iteritems():
print each_sub_sub_subkey, value_num