Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
json problem
#1
Hi

I'm new on this forum.
I'm working with json and python and i don't succeed to retrieve some information...

my json:
Output:
{ "domaine": { "nom": { "service": ["test"] }, }
I'm trying to print only: "nom" but don't succeed in it.
My code:

with open('/tmp/file.json') as json_file1:
    data = json.load(json_file)

    for key, value in data.items():
        variable = data[domaine]
I only success to print only domaine, or all my json, not just "nom"

Sorry for this perhaps simply question..
Thanks for help

Alex
Reply
#2
Put this into your for loop so you can examine what you are dealing with.
print("Key:", key, ",Value:", value)
Reply
#3
Line 5: the variable domaine isn't declared anywhere is it? Also, don't you think something must be wrong if you aren't using your loop variables (i.e. key and value) in the loop?
Reply
#4
#!/usr/bin/env python3

import json
import sys
import os

with open('/tmp/config1.json') as json_file:
    data = json.load(json_file)
    for key, value in data.items():

     print ("key:", key,)

     print ("value", value,)
And result is:

Output:
key: domaine value {'nom': {'service': ['test']}}
My exact json is:

Output:
{ "domaine": { "nom": { "service": ["test"] } } }
I've created a new python prog to be sure domaine and others are not already declared.

Thanks
Reply
#5
Excellent, like the replies that helped and mark the thread as solved.
Reply
#6
Hum no it's not solved :)

In fact I want to only print "nom" (just that key, not the contain)
But I don't know how to retrieve just that.
Reply
#7
for key in data:
    print(key)

To pull the key/value pair from a dictionary you need to use the dictionary_name.items()
To pull just the keys you only need the dictionary_name
Reply
#8
Seems doesn't work too :/
In this case:

#!/usr/bin/env python3

import json
import sys
with open('/tmp/config1.json') as json_file1:
    data = json.load(json_file1)
    for key in data:
        print(key)
Result is:

Output:
python3.7 script.py domaine
In my case what is interesting for me is: " To pull the key/value pair from a dictionary you need to use the dictionary_name.items()" Because, for the moment, here I need to retreive nom.
But next, in my script I will need other informations.

I continue to search but for the moment no success .. :(
Reply
#9
It's a nested structure. The example will result in JSON object that is dict of dicts of dicts.
The most appropriate approach would depend on whether you know in advance what it looks like, e.g. how many levels, how many (i.e. one or many/undefined number) elements in each level.
Most generic approach:
import json

with open('sample.json') as json_file:
    data = json.load(json_file)
    for key, value in data.items():
        print(f'key: {key}')
        for key2, value2 in value.items():
            print(f'key2: {key2}')
            for key3, value3 in value2.items():
                print(f'key3: {key3}')
                print(f'value3: {value3}') # in the example value3 is a list, i.e. you can iterate over/access it's elements
Output:
key: domaine key2: nom key3: service value3: ['test']
In my code I use generic key, key2, key3/value, bvalue2, value3 variable names. You better use more descriptive names if possible
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#10
Yeah :)
Thanks for explanation and informations, all is working fine now.

Have a good day :)

Alex
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Problem with nested JSON Kalet 7 2,719 Dec-09-2021, 11:13 PM
Last Post: Gribouillis
  Problem with Json Array kwekey 2 1,642 Aug-02-2021, 05:11 PM
Last Post: kwekey
  Problem to parse a json enigma619 3 2,342 Dec-04-2020, 08:16 AM
Last Post: enigma619
  Output to a json file problem Netcode 3 3,663 Nov-22-2019, 01:44 AM
Last Post: Skaperen
  json load problem mepyyeti 6 4,810 Dec-28-2017, 02:15 AM
Last Post: Larz60+
  Python .json problem with UTF-8 file PickyBiker 5 12,620 Dec-28-2016, 04:56 PM
Last Post: PickyBiker

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020