Jak analizować kluczową wartość zagnieżdżony w innym kluczu, którego imię nie jest znane w Pythonie?

głosy
29

Chciałbym uzyskać dostęp do wartości klucza ekstraktu, który jest zagnieżdżony na łamach kluczowych

{
    batchcomplete: ,
    query: {
        normalized: [
            {
                from: sample,
                to: Sample
            }
        ],
        pages: {
            23895873: {
                pageid: 23895873,
                ns: 0,
                title: Sample,
                extract: <p><b>Sample</b> or <b>samples</b> may refer to:</p>\n<p></p>\n
            }
        }
    }
}

Tworzę bota wikipedia, że będzie wydrukować podsumowanie (wartość klucza extract). Ale problemem jest to, że pageidwartość utrzymuje się na zmianę w wynikach wyszukiwania. Jak mogę to zrobić?

Próbowałem za pomocą JSON:

import json
import requests
wikiReq = requests.get(https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=&titles=sample&format=json)
jsonResult = wikiReq.json()
result = jsonResult[query][pages][][extract]
print(json.dumps(result , indent = 4))
Utwórz 28/03/2016 o 16:59
użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Możesz to zrobić

for i in jsonResult["query"]["pages"]:
    result = jsonResult["query"]["pages"][i]["extract"]

Zakładając, że istnieje tylko jeden element nie będzie to zawsze działa

Odpowiedział 28/03/2016 o 17:03
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more