Ich habe mich gefragt, wie ich auf einen Teil des json zugreifen kann, indem ich ihn durchschaue und einen Namen finde (hoffe, das Beispiel macht mehr Sinn).

Name = 'kyle'

Also versuche ich, Kyle und all seine Informationen wie sein Alter zu finden.

{   "People": {
     "Names": {
       "kyle": [
         {
           "Age": "23",
           "Filler": "23"
         }
       ],
       "Michel": [
         {
           "value": "New"
         }
       ],
       "Smith": [
         {
           "value": "New"
         }
       ]
     }   
  } 
}

Ich möchte diese Informationen später in einer Variablen speichern. Jede Hilfe wird sehr geschätzt.

-2
Ali Al-Jabur 18 Jän. 2019 im 01:10

3 Antworten

Beste Antwort

Das sollte einfach gehen, würde ich sagen:

Information_list = json['Person']['names']['kyle']

Bearbeiten: Es sind nur verschachtelte Wörterbücher ... es gibt jedoch meines Wissens auch Bibliotheken, um die Handhabung zu vereinfachen, wenn der JSON größer ist

0
Todor Minakov 18 Jän. 2019 im 08:11

Sie können dies tun, um auf den Namen und die Informationen zuzugreifen:

d={ "People": { "Names": { "kyle": [ { "Age": "23", "Filler": "23" } ], "Michel": [ { "value": "New" } ], "Smith": [ { "value": "New" } ] } } }

for names in d['People'].values():
    for name, info in names.items():
        print()
        print('Name =', name)
        for i in info:
            for info1, info2 in i.items():
                print('info: ', info1, info2)

Ausgabe:

Name = kyle
info:  Age 23
info:  Filler 23

Name = Michel
info:  value New

Name = Smith
info:  value New

Viel Glück!

0
Victor S 17 Jän. 2019 im 22:41
import sys
import json

person_name=sys.argv[1]

json_str="""{"People": {"Names": {"kyle":[{"Age": "23", "Filler": "23" }], "Michel": [{"value": "New"}], "Smith": [ { "value": "New"}]}}}"""

json_data=json.loads(json_str)
for name in json_data["People"]["Names"]:
    if name == person_name:
        for data in json_data["People"]["Names"][name]:
            print("{}\n\nData: {}\n").format(person_name, data)

Dies kann an Ihre Bedürfnisse angepasst werden

Verwendung:

./script_name.py <name_of_person>

Szenario 1:

./script_name.py kyle

Ausgabe 1:

Kyle:

Data: {u'Filler': u'23', u'Age': u'23'}

Szenario 2:

./script_name.py Michel

Ausgabe 2:

Michel

Data: {u'value': u'New'}

Es wird nicht mehr so schön aussehen, da Ihre Datenstrukturen je nach Person unterschiedlich sind, obwohl es leicht möglich ist, dies zu beheben.

0
waymobetta 17 Jän. 2019 im 22:41