You should be calling pywikibot.ItemPage with the data repository, not the site.
import pywikibot wd = pywikibot.Site('wikidata', 'wikidata') repo = wd.data_repository() item = pywikibot.ItemPage(repo, 'Q42') item.get()
{'labels': <pywikibot.page.LanguageDict object at 0x7f69c8ca18e0>, 'descriptions': <pywikibot.page.LanguageDict object at 0x7f69c88fc8b0>, 'aliases': <pywikibot.page.AliasesDict object at 0x7f69c88fc6d0>, 'claims': <pywikibot.page.ClaimCollection object at 0x7f69c88fca30>, 'sitelinks': <pywikibot.page.SiteLinkCollection object at 0x7f69c88fc940>}
item.claims["P31"][0].getTarget()
ItemPage('Q5')
I couldn't get pywikibot.ItemPage.fromPage to work properly, but it looks like that is related to https://phabricator.wikimedia.org/T242081.
AntiCompositeNumber
On Sat, Jun 27, 2020 at 10:55 AM Clements, Paul Paul.Clements@bl.uk wrote:
Hi,
I am trying to use a q number to get the details of a page in wikidata. I have searched through the tutorials and found these that claim to work
wikidata = pywikibot.Site("wikidata", "wikidata") repo = wikidata.data_repository() item = pywikibot.ItemPage(wikidata, "Q42").get()['claims']['P31'][0].getTarget() itempage = pywikibot.ItemPage.fromPage(pywikibot.Page(pywikibot.Site("en", "wikipedia"), "Douglas Adams"))
However when I run either of these then I get the
EntityTypeUnknownException: DataSite("wikidata", "wikidata") does not support entity type "item"
As I am new to this and also python I am sure I am doing something stupid but its currently driving me mad.
Any help would be appreciated
Clemo
Experience the British Library online at www.bl.uk The British Library’s latest Annual Report and Accounts : www.bl.uk/aboutus/annrep/index.html Help the British Library conserve the world's knowledge. Adopt a Book. www.bl.uk/adoptabook The Library's St Pancras site is WiFi - enabled
The information contained in this e-mail is confidential and may be legally privileged. It is intended for the addressee(s) only. If you are not the intended recipient, please delete this e-mail and notify the postmaster@bl.uk : The contents of this e-mail must not be disclosed or copied without the sender's consent. The statements and opinions expressed in this message are those of the author and do not necessarily reflect those of the British Library. The British Library does not take any responsibility for the views of the author.
Think before you print _______________________________________________ pywikibot mailing list pywikibot@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikibot