This handbook is a summary of https://m.wikidata.org/wiki/Wikidata:Pywikibot_-_Python_3_Tutorial with some parts taken to other tutorials. It is build for quick reference. It is recommanded to read the tutorials before using it. These tutorials are released under Creative Commons Attribution-ShareAlike License. Feel free to copy and adapt the Notebook under this licence.

I/ Initialization

Import Pywikibot and set the site to work on.

import pywikibot

wikidata_site = pywikibot.Site("wikidata", "wikidata")
wikidata_repo = wikidata_site.data_repository()

II/ Modifiying a textual page

This manipulation is available on all Wikis. It let modify a simple text page. Not an item.

page = pywikibot.Page(wikidata_site, 'Wikidata:WikiProject_Materials/Test')
page.exists()
True
page.text
'Hello world !!!'
page.text = 'Hello world !!!'
page.save(u"Testing Pywikibot (sandbox page)") #Beware, this replace all the content !
Page [[wikidata:Wikidata:WikiProject Materials/Test]] saved
page.text
'Hello world !!!'

III/ The "ItemPage" class

ItemClass are Pywikibot object that store Wikidata items data.

item = pywikibot.ItemPage(wikidata_repo, "Q2225")
print(item)

print('\nItemsPage are Pywikibot objects:')
print(type(item))
item
[[wikidata:Q2225]]

ItemsPage are Pywikibot objects:
<class 'pywikibot.page.ItemPage'>
ItemPage('Q2225')
# Showing methods for this object
dir(item)
['__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__le__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__unicode__',
 '__weakref__',
 '_cache_attrs',
 '_cmpkey',
 '_cosmetic_changes_hook',
 '_defined_by',
 '_diff_to',
 '_getInternals',
 '_get_parsed_page',
 '_latest_cached_revision',
 '_link',
 '_namespace',
 '_normalizeData',
 '_normalizeLanguages',
 '_revisions',
 '_save',
 'addClaim',
 'applicable_protections',
 'aslink',
 'autoFormat',
 'backlinks',
 'botMayEdit',
 'canBeEdited',
 'categories',
 'change_category',
 'clear_cache',
 'concept_uri',
 'concept_url',
 'content_model',
 'contributingUsers',
 'contributors',
 'coordinates',
 'data_item',
 'data_repository',
 'defaultsort',
 'delete',
 'depth',
 'editAliases',
 'editDescriptions',
 'editEntity',
 'editLabels',
 'editTime',
 'embeddedin',
 'encoding',
 'entity_type',
 'exists',
 'expand_text',
 'extlinks',
 'fromPage',
 'from_entity_uri',
 'fullVersionHistory',
 'full_url',
 'get',
 'getCategoryRedirectTarget',
 'getCreator',
 'getDeletedRevision',
 'getID',
 'getLatestEditors',
 'getMovedTarget',
 'getOldVersion',
 'getRedirectTarget',
 'getReferences',
 'getRestrictions',
 'getSitelink',
 'getTemplates',
 'getVersionHistory',
 'getVersionHistoryTable',
 'getdbName',
 'id',
 'image_repository',
 'imagelinks',
 'interwiki',
 'isAutoTitle',
 'isCategory',
 'isCategoryRedirect',
 'isDisambig',
 'isEmpty',
 'isFlowPage',
 'isImage',
 'isIpEdit',
 'isRedirectPage',
 'isStaticRedirect',
 'isTalkPage',
 'is_categorypage',
 'is_filepage',
 'is_flow_page',
 'is_valid_id',
 'iterlanglinks',
 'iterlinks',
 'itertemplates',
 'langlinks',
 'lastNonBotUser',
 'latestRevision',
 'latest_revision',
 'latest_revision_id',
 'linkedPages',
 'loadDeletedRevisions',
 'markDeletedRevision',
 'mergeInto',
 'merge_history',
 'move',
 'moved_target',
 'namespace',
 'oldest_revision',
 'pageAPInfo',
 'page_image',
 'pageid',
 'permalink',
 'preloadText',
 'previousRevision',
 'previous_revision_id',
 'properties',
 'protect',
 'protection',
 'purge',
 'put',
 'put_async',
 'removeClaims',
 'removeSitelink',
 'removeSitelinks',
 'repo',
 'revision_count',
 'revisions',
 'save',
 'section',
 'sectionFreeTitle',
 'setSitelink',
 'setSitelinks',
 'set_redirect_target',
 'site',
 'templates',
 'text',
 'title',
 'titleForFilename',
 'titleWithoutNamespace',
 'title_pattern',
 'toJSON',
 'toggleTalkPage',
 'touch',
 'undelete',
 'urlname',
 'userName',
 'version',
 'watch']
#Methods to print the title and properties
print('\nitem.title() = ' + str(item.title()))
print('\nitem.properties() = ' + str(item.properties()))
item.title() = Q2225

item.properties() = {'page_image_free': 'Single_electron_probability_pattern.png', 'wb-claims': '37', 'wb-identifiers': '13', 'wb-sitelinks': '148'}
# The get() method unpack the data of the item
item_dict = item.get()
print('get() provide a: '+ str(type(item_dict))+'\n')
item_dict
get() provide a: <class 'dict'>

{'aliases': {'en-gb': ['e−', 'β−'],
  'cs': ['e', '-e', 'e-'],
  'de': ['e⁻', 'e'],
  'scn': ['elettruni', 'elittruni'],
  'vi': ['điện tử'],
  'pt-br': ['e⁻'],
  'mk': ['e⁻', 'е⁻'],
  'pt': ['electrão'],
  'es': ['electrons'],
  'ba': ['кире зарядлы элементар киҫәксә'],
  'tt': ['electron']},
 'labels': {'it': 'elettrone',
  'de': 'Elektron',
  'fr': 'électron',
  'en': 'electron',
  'af': 'elektron',
  'an': 'Electrón',
  'ar': 'إلكترون',
  'ast': 'Electrón',
  'az': 'Elektron',
  'bar': 'Elektron',
  'be': 'Электрон',
  'bg': 'Електрон',
  'bn': 'ইলেকট্রন',
  'br': 'Elektron',
  'bs': 'Elektron',
  'bug': 'Elektron',
  'ca': 'electró',
  'cs': 'elektron',
  'cv': 'Электрон',
  'cy': 'Electron',
  'da': 'elektron',
  'el': 'ηλεκτρόνιο',
  'eo': 'elektrono',
  'es': 'electrón',
  'et': 'elektron',
  'eu': 'elektroi',
  'fa': 'الکترون',
  'fi': 'elektroni',
  'fo': 'Elektron',
  'fy': 'Elektron',
  'ga': 'Leictreon',
  'gl': 'electrón',
  'he': 'אלקטרון',
  'hi': 'इलेक्ट्रॉन',
  'hif': 'Electron',
  'hr': 'elektron',
  'ht': 'Elektwon',
  'hu': 'elektron',
  'hy': 'էլեկտրոն',
  'ia': 'electron',
  'id': 'Elektron',
  'ilo': 'Elektron',
  'io': 'elektrono',
  'is': 'rafeind',
  'ja': '電子',
  'jbo': 'dutydikca kantu',
  'jv': 'Èlèktron',
  'ka': 'ელექტრონი',
  'kk': 'Электрон',
  'kn': 'ಎಲೆಕ್ಟ್ರಾನ್',
  'ko': '전자',
  'ksh': 'Elektron',
  'ku': 'Kareva',
  'la': 'electron',
  'lb': 'Elektron',
  'lmo': 'Elettron',
  'ln': 'Eléktron',
  'lt': 'elektronas',
  'lv': 'elektrons',
  'mk': 'електрон',
  'ml': 'ഇലക്ട്രോൺ',
  'mn': 'Электрон',
  'mr': 'विजाणू',
  'ms': 'Elektron',
  'my': 'အီလက်ထရွန်',
  'nds': 'Elektron',
  'ne': 'इलेक्ट्रोन',
  'new': 'इलेक्ट्रोन',
  'nl': 'elektron',
  'nn': 'elektron',
  'nov': 'elektrone',
  'oc': 'electron',
  'pl': 'elektron',
  'pnb': 'الیکٹران',
  'pt': 'eletrão',
  'qu': 'Iliktrun',
  'ro': 'electron',
  'ru': 'электрон',
  'rue': 'Електрон',
  'sa': 'विद्युदणु',
  'scn': 'elittroni',
  'sd': 'برقيو',
  'sh': 'Elektron',
  'si': 'ඉලෙක්ට්\u200dරෝනය',
  'sk': 'elektrón',
  'sl': 'elektron',
  'sq': 'elektroni',
  'sr': 'електрон',
  'stq': 'Elektron',
  'su': 'Éléktron',
  'sv': 'elektron',
  'sw': 'elektroni',
  'ta': 'எதிர்மின்னி',
  'te': 'ఎలక్ట్రాన్',
  'th': 'อิเล็กตรอน',
  'tl': 'Elektron',
  'tr': 'elektron',
  'tt': 'электрон',
  'ug': 'ئېلېكترون',
  'uk': 'електрон',
  'ur': 'برقیہ',
  'uz': 'Elektron',
  'vec': 'Ełetron',
  'vi': 'electron',
  'war': 'Electron',
  'wo': 'Mbëjfepp',
  'xal': 'Электрон',
  'yi': 'עלעקטראן',
  'yo': 'Ẹ̀lẹ́ktròn',
  'zh': '电子',
  'de-ch': 'Elektron',
  'en-ca': 'Electron',
  'en-gb': 'electron',
  'pt-br': 'elétron',
  'yue': '電子',
  'pa': 'ਬਿਜਲਾਣੂ',
  'pms': 'Eletron',
  'nb': 'elektron',
  'sco': 'electron',
  'sr-ec': 'електрон',
  'sr-el': 'elektron',
  'eml': 'Eletròun',
  'ckb': 'ئێلێکترۆن',
  'km': 'អេឡិចត្រុង',
  'frr': 'Elektron',
  'as': 'ইলেকট্ৰন',
  'or': 'ଇଲେକ୍\u200cଟ୍ରୋନ',
  'sgs': 'Alektruons',
  'nan': 'Tiān-chú',
  'lzh': '電子',
  'be-tarask': 'Электрон',
  'vro': 'Elektron',
  'vep': 'Elektron',
  'gsw': 'Elektron',
  'ps': 'اېلېکټرون',
  'xh': 'Ii-electrons',
  'azb': 'الکترون',
  'li': 'Elektron',
  'jam': 'Ilekchran',
  'ba': 'Электрон',
  'gu': 'ઈલેક્ટ્રોન',
  'wuu': '电子',
  'ky': 'Электрон',
  'lij': 'Elettron',
  'cdo': 'Diêng-cṳ̄',
  'kbp': 'Nazɩyʊ pe',
  'so': 'Elektaroon',
  'lfn': 'Eletron',
  'tt-cyrl': 'электрон'},
 'descriptions': {'it': 'particella elementare che, insieme a protoni e neutroni, forma gli atomi',
  'fr': 'particule élémentaire de charge négative',
  'ru': 'субатомная частица с отрицательным зарядом, легчайший из заряженных лептонов',
  'en-gb': 'subatomic particle',
  'de': 'negativ geladenes Elementarteilchen',
  'es': 'fermión y partícula subatómica de carga elemental negativa',
  'en': 'subatomic particle with negative electric charge',
  'id': 'partikel subatom yang bermuatan negatif',
  'pt': 'partícula subatómica',
  'cs': 'elementární částice se záporným nábojem -e',
  'da': 'elementarpartikel med negativ ladning',
  'scn': 'particedda suttatòmica cu càrrica elèttrica nigativa 𝑒',
  'vi': 'hạt hạ nguyên tử mang điện tích âm',
  'pt-br': 'Partícula subatômica fundamental com carga negativa.',
  'ca': 'partícula elemental fermiònica amb càrrega negativa',
  'mk': 'податомска честичка со негативен полнеж',
  'pl': 'cząstka elementarna',
  'zh': '帶電荷的基本粒子',
  'nb': 'elementærpartikkel med negativ ladning',
  'fa': 'یک ذره زیر اتمی با بار الکتریکی منفی',
  'ar': 'جسيم دون ذري سالب الشحنة',
  'ba': 'кире зарядлы тотороҡло элементар киҫәксә',
  'ckb': 'ئەلکترۆن',
  'hi': 'ऋणात्मक वैद्युत आवेश युक्त मूलभूत उपपरमाणविक कण है',
  'gu': 'ઋણ વિદ્યુતભારિત મૂળભૂત કણ',
  'ja': '原子を構成する負電荷を持った素粒子',
  'eo': 'malpeza elementa fermiono kies elektra ŝargo estas −1; komponanto de ĉiu atomo',
  'bn': 'একটি অধঃ-পরমাণু  মৌলিক কণা  যা একটি ঋণাত্মক তড়িৎ আধান বহন করে',
  'ur': 'الیکٹرون'},
 'claims': {'P1360': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1360', 'datatype': 'string', 'datavalue': {'value': '11', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$56c49ee0-4c6b-4804-bc6b-a26fc4b26dbf', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 17323608}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '379bff50d1450626291cc3ffe4a477aa69b9d7dc'}]})],
  'P279': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P279', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 82586}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'q2225$CA3B52EE-5E76-4A3D-B2CB-0DDDC21E7B0B', 'rank': 'normal'}),
   Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P279', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 44363}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$546af15c-480f-e871-c643-0b8426e73ba6', 'rank': 'normal'})],
  'P1036': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1036', 'datatype': 'string', 'datavalue': {'value': '539.72112', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$908ade56-4ff1-95b3-1521-eb8d4249c2b0', 'rank': 'normal'})],
  'P373': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P373', 'datatype': 'string', 'datavalue': {'value': 'Electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$1C523D9A-862E-4DC0-8D99-FEAA60D872A1', 'rank': 'normal'})],
  'P227': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P227', 'datatype': 'external-id', 'datavalue': {'value': '4125978-6', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$A910F863-6788-4281-A073-1973C5083665', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 48183}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '9a24f7c0208b05d6be97077d855671d1dfdbc0dd'}]})],
  'P517': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 11418}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$77575a0c-4a43-2b4d-cef4-8a17ffd7db68', 'rank': 'normal'}),
   Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 849919}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$a571422c-4a60-65ed-3642-7c8675766bfd', 'rank': 'normal'}),
   Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 11412}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$0f7a27de-4db4-2f88-b04f-5c383b035cb0', 'rank': 'normal'})],
  'P508': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P508', 'datatype': 'external-id', 'datavalue': {'value': '3791', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$48F396B9-5515-4CCE-95E8-DE75AA8DDB77', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 460907}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': 'b7232a03e568ea326dacdccb6322adb7894300d5'}]})],
  'P910': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P910', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 8411332}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$334BBD54-F057-4FB1-A279-507370DCA326', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 14380}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '60cf770260aef7fc2fed6c981da268725c641b94'}]})],
  'P349': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P349', 'datatype': 'external-id', 'datavalue': {'value': '00561425', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$F288E882-7E99-445F-BF7F-A4EC89FDC7FE', 'rank': 'normal'})],
  'P1122': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1122', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+0.5', 'upperBound': None, 'lowerBound': None, 'unit': '1'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$9760e517-4f85-d808-50e7-85698fe554bf', 'rank': 'normal'})],
  'P1123': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1123', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+1', 'upperBound': None, 'lowerBound': None, 'unit': '1'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$88d2984d-46ce-c948-02a9-55d93079d0c3', 'rank': 'normal'})],
  'P646': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P646', 'datatype': 'external-id', 'datavalue': {'value': '/m/02l7x', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$C4FACE8D-F599-4C69-8623-80C7FE64402B', 'rank': 'normal', 'references': [{'snaks': {'P248': [{'snaktype': 'value', 'property': 'P248', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 15241312}, 'type': 'wikibase-entityid'}}], 'P577': [{'snaktype': 'value', 'property': 'P577', 'datatype': 'time', 'datavalue': {'value': {'time': '+00000002013-10-28T00:00:00Z', 'precision': 11, 'after': 0, 'before': 0, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}, 'type': 'time'}}]}, 'snaks-order': ['P248', 'P577'], 'hash': '2b00cb481cddcac7623114367489b5c194901c4a'}]})],
  'P1014': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1014', 'datatype': 'external-id', 'datavalue': {'value': '300264243', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$49D14258-FE09-458A-9831-2A9F8CC3397A', 'rank': 'normal'})],
  'P1051': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1051', 'datatype': 'external-id', 'datavalue': {'value': '3701', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$08AD62CB-C11D-42D8-90D6-76D3EFE7A401', 'rank': 'normal'})],
  'P61': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P61', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 47285}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$cf471463-4476-9ee7-25b1-6328e2307db9', 'rank': 'normal'})],
  'P575': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P575', 'datatype': 'time', 'datavalue': {'value': {'time': '+00000001897-00-00T00:00:00Z', 'precision': 9, 'after': 0, 'before': 0, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}, 'type': 'time'}}, 'type': 'statement', 'id': 'Q2225$9e03b33c-4b89-ebc7-a07f-f8dba057abf6', 'rank': 'normal'})],
  'P31': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P31', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 22675015}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$C62338D6-971A-4FBB-8CA8-2CAC19C43913', 'rank': 'normal'})],
  'P2069': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2069', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1.00115965218076', 'upperBound': '-1.00115965218075', 'lowerBound': '-1.00115965218077', 'unit': 'http://www.wikidata.org/entity/Q737120'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$edaaaf4e-48fd-6503-016c-27d857e55f40', 'rank': 'normal'})],
  'P2152': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2152', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 3229}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$c0d4e2e5-4517-6968-d118-854f1b78c23d', 'rank': 'normal'})],
  'P2200': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2200', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1', 'upperBound': None, 'lowerBound': None, 'unit': 'http://www.wikidata.org/entity/Q2101'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$f6f6e26b-4f3e-fb2b-e1d1-64734af0e45c', 'rank': 'normal'})],
  'P2375': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2375', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 1087203}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$ab40a257-41ab-d688-709f-abdacb2a1e65', 'rank': 'normal', 'qualifiers': {'P31': [{'snaktype': 'value', 'property': 'P31', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 41719}, 'type': 'wikibase-entityid'}, 'hash': 'da9e8ccbb9a2d14e3b0495df4a459dc9386e4e2f'}]}, 'qualifiers-order': ['P31']})],
  'P18': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P18', 'datatype': 'commonsMedia', 'datavalue': {'value': 'Single electron probability pattern.png', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$3479e9d8-4902-0c01-e351-f42323b3b6a6', 'rank': 'normal'})],
  'P3417': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3417', 'datatype': 'external-id', 'datavalue': {'value': 'Electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$35DF88B3-F55E-4593-9117-DC762BD156A6', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 51711}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': 'd0b5b6346d38f7e212f576fec2c6692ef2b86e6a'}]})],
  'P3827': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3827', 'datatype': 'external-id', 'datavalue': {'value': 'electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$9269A7D8-741E-4B65-B5F8-97037E9BEEF9', 'rank': 'normal'})],
  'P3916': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3916', 'datatype': 'external-id', 'datavalue': {'value': 'concept9543', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$B40DD64D-95C4-4F8B-A929-2AE94FC49A41', 'rank': 'normal'})],
  'P2067': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2067', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+0.00054857990907016', 'upperBound': None, 'lowerBound': None, 'unit': 'http://www.wikidata.org/entity/Q483261'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$45e73d74-44f3-b546-1faa-b1a59d75e7f7', 'rank': 'normal', 'references': [{'snaks': {'P854': [{'snaktype': 'value', 'property': 'P854', 'datatype': 'url', 'datavalue': {'value': 'http://physics.nist.gov/cgi-bin/cuu/Value?me', 'type': 'string'}}]}, 'snaks-order': ['P854'], 'hash': 'd2e3e5a11a866698e0bbce4b25b7d3e3f651ab64'}]})],
  'P138': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P138', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 25381}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$98fefef9-4f12-2a5f-c60a-457cc450a062', 'rank': 'normal'})],
  'P683': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P683', 'datatype': 'external-id', 'datavalue': {'value': '10545', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$8d21ddeb-4bad-0e9a-02b1-bf36285c50c0', 'rank': 'normal'})],
  'P486': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P486', 'datatype': 'external-id', 'datavalue': {'value': 'D004583', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$1841CA3D-103A-4A02-B6F7-AB0CDF2ABCE0', 'rank': 'normal'})],
  'P156': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P156', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 3151}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$c043582b-4f1a-c273-755b-870120f59ba9', 'rank': 'normal', 'qualifiers': {'P642': [{'snaktype': 'value', 'property': 'P642', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 846671}, 'type': 'wikibase-entityid'}, 'hash': '70a76205a395caadf5346c218a4af722dcd40506'}]}, 'qualifiers-order': ['P642']})],
  'P155': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'novalue', 'property': 'P155'}, 'type': 'statement', 'id': 'Q2225$36f78ba3-4d6f-f6a3-2adf-df5a9bae6e74', 'rank': 'normal'})],
  'P1417': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1417', 'datatype': 'external-id', 'datavalue': {'value': 'science/electron', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$43B0B42C-C1C5-43F3-A097-4406B26D6335', 'rank': 'normal'})],
  'P665': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P665', 'datatype': 'external-id', 'datavalue': {'value': 'C05359', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$F6B098BA-1C3F-4064-AFA5-1AB8C218B164', 'rank': 'normal'})],
  'P461': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P461', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 651050}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$FDD02309-8C2B-4B82-81CD-2E98A4E7A70B', 'rank': 'normal', 'references': [{'snaks': {'P3452': [{'snaktype': 'value', 'property': 'P3452', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 651050}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P3452'], 'hash': '7e055a7a9d0060243e69a88c57ef791eb7da563f'}]})]},
 'sitelinks': {'afwiki': 'Elektron',
  'alswiki': 'Elektron',
  'anwiki': 'Electrón',
  'arwiki': 'إلكترون',
  'astwiki': 'Electrón',
  'aswiki': 'ইলেকট্ৰন',
  'azbwiki': 'الکترون',
  'azwiki': 'Elektron',
  'barwiki': 'Elektron',
  'bat_smgwiki': 'Alektruons',
  'bawiki': 'Электрон',
  'be_x_oldwiki': 'Электрон',
  'bewiki': 'Электрон',
  'bgwiki': 'Електрон',
  'bnwiki': 'ইলেকট্রন',
  'brwiki': 'Elektron',
  'bswiki': 'Elektron',
  'bugwiki': 'Elektron',
  'cawiki': 'Electró',
  'cdowiki': 'Diêng-cṳ̄',
  'ckbwiki': 'ئێلێکترۆن',
  'cswiki': 'Elektron',
  'cvwiki': 'Электрон',
  'cywiki': 'Electron',
  'dawiki': 'Elektron',
  'dewiki': 'Elektron',
  'elwiki': 'Ηλεκτρόνιο',
  'emlwiki': 'Eletròun',
  'enwiki': 'Electron',
  'enwikiquote': 'Electron',
  'eowiki': 'Elektrono',
  'eswiki': 'Electrón',
  'eswikiquote': 'Electrón',
  'etwiki': 'Elektron',
  'euwiki': 'Elektroi',
  'fawiki': 'الکترون',
  'fiu_vrowiki': 'Elektron',
  'fiwiki': 'Elektroni',
  'fowiki': 'Elektron',
  'frrwiki': 'Elektron',
  'frwiki': 'Électron',
  'fywiki': 'Elektron',
  'gawiki': 'Leictreon',
  'glwiki': 'Electrón',
  'guwiki': 'ઈલેક્ટ્રોન',
  'hewiki': 'אלקטרון',
  'hifwiki': 'Electron',
  'hiwiki': 'इलेक्ट्रॉन',
  'hrwiki': 'Elektron',
  'htwiki': 'Elektwon',
  'huwiki': 'Elektron',
  'hywiki': 'Էլեկտրոն',
  'iawiki': 'Electron',
  'idwiki': 'Elektron',
  'ilowiki': 'Elektron',
  'iowiki': 'Elektrono',
  'iswiki': 'Rafeind',
  'itwiki': 'Elettrone',
  'itwikiquote': 'Elettrone',
  'jamwiki': 'Ilekchran',
  'jawiki': '電子',
  'jbowiki': 'dutydikca kantu',
  'jvwiki': 'Èlèktron',
  'kawiki': 'ელექტრონი',
  'kbpwiki': 'Nazɩyʊ pe (électron)',
  'kkwiki': 'Электрон',
  'kmwiki': 'អេឡិចត្រុង',
  'knwiki': 'ಎಲೆಕ್ಟ್ರಾನ್',
  'kowiki': '전자',
  'kshwiki': 'Elektron',
  'kuwiki': 'Kareva',
  'kywiki': 'Электрон',
  'lawiki': 'Electron',
  'lbwiki': 'Elektron',
  'lfnwiki': 'Eletron',
  'lijwiki': 'Elettron',
  'liwiki': 'Elektron',
  'lmowiki': 'Elettron',
  'lnwiki': 'Eléktron',
  'ltwiki': 'Elektronas',
  'lvwiki': 'Elektrons',
  'mkwiki': 'Електрон',
  'mlwiki': 'ഇലക്ട്രോൺ',
  'mnwiki': 'Электрон',
  'mrwiki': 'विजाणू',
  'mswiki': 'Elektron',
  'mywiki': 'အီလက်ထရွန်',
  'ndswiki': 'Elektron',
  'newiki': 'इलेक्ट्रोन',
  'newwiki': 'इलेक्ट्रोन',
  'nlwiki': 'Elektron',
  'nnwiki': 'Elektron',
  'novwiki': 'Elektrone',
  'nowiki': 'Elektron',
  'ocwiki': 'Electron',
  'orwiki': 'ଇଲେକ୍\u200cଟ୍ରୋନ',
  'pawiki': 'ਬਿਜਲਾਣੂ',
  'plwiki': 'Elektron',
  'plwikiquote': 'Elektron',
  'pmswiki': 'Eletron',
  'pnbwiki': 'الیکٹران',
  'pswiki': 'اېلېکټرون',
  'ptwiki': 'Elétron',
  'quwiki': 'Iliktrun',
  'rowiki': 'Electron',
  'ruewiki': 'Електрон',
  'ruwiki': 'Электрон',
  'sawiki': 'विद्युदणुः',
  'scnwiki': 'Elettrùni',
  'scowiki': 'Electron',
  'sdwiki': 'برقيو',
  'shwiki': 'Elektron',
  'simplewiki': 'Electron',
  'siwiki': 'ඉලෙක්ට්\u200dරෝනය',
  'skwiki': 'Elektrón',
  'skwikiquote': 'Elektrón',
  'slwiki': 'Elektron',
  'sowiki': 'Elektaroon',
  'sqwiki': 'Elektroni',
  'srwiki': 'Електрон',
  'stqwiki': 'Elektron',
  'suwiki': 'Éléktron',
  'svwiki': 'Elektron',
  'swwiki': 'Elektroni',
  'tawiki': 'எதிர்மின்னி',
  'tewiki': 'ఎలక్ట్రాన్',
  'thwiki': 'อิเล็กตรอน',
  'tlwiki': 'Elektron',
  'trwiki': 'Elektron',
  'ttwiki': 'Электрон',
  'ugwiki': 'ئېلېكترون',
  'ukwiki': 'Електрон',
  'urwiki': 'برقیہ',
  'uzwiki': 'Elektron',
  'vecwiki': 'Ełetron',
  'vepwiki': 'Elektron',
  'viwiki': 'Electron',
  'warwiki': 'Electron',
  'wowiki': 'Mbëjfepp',
  'wuuwiki': '电子',
  'xalwiki': 'Электрон',
  'xhwiki': 'Ii-electrons',
  'yiwiki': 'עלעקטראן',
  'yowiki': 'Ẹ̀lẹ́ktrọ́nù',
  'zh_classicalwiki': '電子',
  'zh_min_nanwiki': 'Tiān-chú',
  'zh_yuewiki': '電子',
  'zhwiki': '电子'}}
 # Go to the claim dictionary
clm_dict = item_dict["claims"]
clm_dict
{'P1360': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1360', 'datatype': 'string', 'datavalue': {'value': '11', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$56c49ee0-4c6b-4804-bc6b-a26fc4b26dbf', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 17323608}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '379bff50d1450626291cc3ffe4a477aa69b9d7dc'}]})],
 'P279': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P279', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 82586}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'q2225$CA3B52EE-5E76-4A3D-B2CB-0DDDC21E7B0B', 'rank': 'normal'}),
  Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P279', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 44363}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$546af15c-480f-e871-c643-0b8426e73ba6', 'rank': 'normal'})],
 'P1036': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1036', 'datatype': 'string', 'datavalue': {'value': '539.72112', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$908ade56-4ff1-95b3-1521-eb8d4249c2b0', 'rank': 'normal'})],
 'P373': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P373', 'datatype': 'string', 'datavalue': {'value': 'Electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$1C523D9A-862E-4DC0-8D99-FEAA60D872A1', 'rank': 'normal'})],
 'P227': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P227', 'datatype': 'external-id', 'datavalue': {'value': '4125978-6', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$A910F863-6788-4281-A073-1973C5083665', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 48183}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '9a24f7c0208b05d6be97077d855671d1dfdbc0dd'}]})],
 'P517': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 11418}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$77575a0c-4a43-2b4d-cef4-8a17ffd7db68', 'rank': 'normal'}),
  Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 849919}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$a571422c-4a60-65ed-3642-7c8675766bfd', 'rank': 'normal'}),
  Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P517', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 11412}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$0f7a27de-4db4-2f88-b04f-5c383b035cb0', 'rank': 'normal'})],
 'P508': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P508', 'datatype': 'external-id', 'datavalue': {'value': '3791', 'type': 'string'}}, 'type': 'statement', 'id': 'q2225$48F396B9-5515-4CCE-95E8-DE75AA8DDB77', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 460907}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': 'b7232a03e568ea326dacdccb6322adb7894300d5'}]})],
 'P910': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P910', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 8411332}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$334BBD54-F057-4FB1-A279-507370DCA326', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 14380}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': '60cf770260aef7fc2fed6c981da268725c641b94'}]})],
 'P349': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P349', 'datatype': 'external-id', 'datavalue': {'value': '00561425', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$F288E882-7E99-445F-BF7F-A4EC89FDC7FE', 'rank': 'normal'})],
 'P1122': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1122', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+0.5', 'upperBound': None, 'lowerBound': None, 'unit': '1'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$9760e517-4f85-d808-50e7-85698fe554bf', 'rank': 'normal'})],
 'P1123': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1123', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+1', 'upperBound': None, 'lowerBound': None, 'unit': '1'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$88d2984d-46ce-c948-02a9-55d93079d0c3', 'rank': 'normal'})],
 'P646': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P646', 'datatype': 'external-id', 'datavalue': {'value': '/m/02l7x', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$C4FACE8D-F599-4C69-8623-80C7FE64402B', 'rank': 'normal', 'references': [{'snaks': {'P248': [{'snaktype': 'value', 'property': 'P248', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 15241312}, 'type': 'wikibase-entityid'}}], 'P577': [{'snaktype': 'value', 'property': 'P577', 'datatype': 'time', 'datavalue': {'value': {'time': '+00000002013-10-28T00:00:00Z', 'precision': 11, 'after': 0, 'before': 0, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}, 'type': 'time'}}]}, 'snaks-order': ['P248', 'P577'], 'hash': '2b00cb481cddcac7623114367489b5c194901c4a'}]})],
 'P1014': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1014', 'datatype': 'external-id', 'datavalue': {'value': '300264243', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$49D14258-FE09-458A-9831-2A9F8CC3397A', 'rank': 'normal'})],
 'P1051': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1051', 'datatype': 'external-id', 'datavalue': {'value': '3701', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$08AD62CB-C11D-42D8-90D6-76D3EFE7A401', 'rank': 'normal'})],
 'P61': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P61', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 47285}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$cf471463-4476-9ee7-25b1-6328e2307db9', 'rank': 'normal'})],
 'P575': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P575', 'datatype': 'time', 'datavalue': {'value': {'time': '+00000001897-00-00T00:00:00Z', 'precision': 9, 'after': 0, 'before': 0, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}, 'type': 'time'}}, 'type': 'statement', 'id': 'Q2225$9e03b33c-4b89-ebc7-a07f-f8dba057abf6', 'rank': 'normal'})],
 'P31': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P31', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 22675015}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$C62338D6-971A-4FBB-8CA8-2CAC19C43913', 'rank': 'normal'})],
 'P2069': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2069', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1.00115965218076', 'upperBound': '-1.00115965218075', 'lowerBound': '-1.00115965218077', 'unit': 'http://www.wikidata.org/entity/Q737120'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$edaaaf4e-48fd-6503-016c-27d857e55f40', 'rank': 'normal'})],
 'P2152': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2152', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 3229}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$c0d4e2e5-4517-6968-d118-854f1b78c23d', 'rank': 'normal'})],
 'P2200': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2200', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1', 'upperBound': None, 'lowerBound': None, 'unit': 'http://www.wikidata.org/entity/Q2101'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$f6f6e26b-4f3e-fb2b-e1d1-64734af0e45c', 'rank': 'normal'})],
 'P2375': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2375', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 1087203}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$ab40a257-41ab-d688-709f-abdacb2a1e65', 'rank': 'normal', 'qualifiers': {'P31': [{'snaktype': 'value', 'property': 'P31', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 41719}, 'type': 'wikibase-entityid'}, 'hash': 'da9e8ccbb9a2d14e3b0495df4a459dc9386e4e2f'}]}, 'qualifiers-order': ['P31']})],
 'P18': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P18', 'datatype': 'commonsMedia', 'datavalue': {'value': 'Single electron probability pattern.png', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$3479e9d8-4902-0c01-e351-f42323b3b6a6', 'rank': 'normal'})],
 'P3417': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3417', 'datatype': 'external-id', 'datavalue': {'value': 'Electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$35DF88B3-F55E-4593-9117-DC762BD156A6', 'rank': 'normal', 'references': [{'snaks': {'P143': [{'snaktype': 'value', 'property': 'P143', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 51711}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P143'], 'hash': 'd0b5b6346d38f7e212f576fec2c6692ef2b86e6a'}]})],
 'P3827': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3827', 'datatype': 'external-id', 'datavalue': {'value': 'electrons', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$9269A7D8-741E-4B65-B5F8-97037E9BEEF9', 'rank': 'normal'})],
 'P3916': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P3916', 'datatype': 'external-id', 'datavalue': {'value': 'concept9543', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$B40DD64D-95C4-4F8B-A929-2AE94FC49A41', 'rank': 'normal'})],
 'P2067': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2067', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '+0.00054857990907016', 'upperBound': None, 'lowerBound': None, 'unit': 'http://www.wikidata.org/entity/Q483261'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$45e73d74-44f3-b546-1faa-b1a59d75e7f7', 'rank': 'normal', 'references': [{'snaks': {'P854': [{'snaktype': 'value', 'property': 'P854', 'datatype': 'url', 'datavalue': {'value': 'http://physics.nist.gov/cgi-bin/cuu/Value?me', 'type': 'string'}}]}, 'snaks-order': ['P854'], 'hash': 'd2e3e5a11a866698e0bbce4b25b7d3e3f651ab64'}]})],
 'P138': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P138', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 25381}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$98fefef9-4f12-2a5f-c60a-457cc450a062', 'rank': 'normal'})],
 'P683': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P683', 'datatype': 'external-id', 'datavalue': {'value': '10545', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$8d21ddeb-4bad-0e9a-02b1-bf36285c50c0', 'rank': 'normal'})],
 'P486': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P486', 'datatype': 'external-id', 'datavalue': {'value': 'D004583', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$1841CA3D-103A-4A02-B6F7-AB0CDF2ABCE0', 'rank': 'normal'})],
 'P156': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P156', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 3151}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$c043582b-4f1a-c273-755b-870120f59ba9', 'rank': 'normal', 'qualifiers': {'P642': [{'snaktype': 'value', 'property': 'P642', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 846671}, 'type': 'wikibase-entityid'}, 'hash': '70a76205a395caadf5346c218a4af722dcd40506'}]}, 'qualifiers-order': ['P642']})],
 'P155': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'novalue', 'property': 'P155'}, 'type': 'statement', 'id': 'Q2225$36f78ba3-4d6f-f6a3-2adf-df5a9bae6e74', 'rank': 'normal'})],
 'P1417': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P1417', 'datatype': 'external-id', 'datavalue': {'value': 'science/electron', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$43B0B42C-C1C5-43F3-A097-4406B26D6335', 'rank': 'normal'})],
 'P665': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P665', 'datatype': 'external-id', 'datavalue': {'value': 'C05359', 'type': 'string'}}, 'type': 'statement', 'id': 'Q2225$F6B098BA-1C3F-4064-AFA5-1AB8C218B164', 'rank': 'normal'})],
 'P461': [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P461', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 651050}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q2225$FDD02309-8C2B-4B82-81CD-2E98A4E7A70B', 'rank': 'normal', 'references': [{'snaks': {'P3452': [{'snaktype': 'value', 'property': 'P3452', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 651050}, 'type': 'wikibase-entityid'}}]}, 'snaks-order': ['P3452'], 'hash': '7e055a7a9d0060243e69a88c57ef791eb7da563f'}]})]}
#Focus on a specific property's claims list
clm_list = clm_dict["P2069"]
print(clm_list)
[Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P2069', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1.00115965218076', 'upperBound': '-1.00115965218075', 'lowerBound': '-1.00115965218077', 'unit': 'http://www.wikidata.org/entity/Q737120'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$edaaaf4e-48fd-6503-016c-27d857e55f40', 'rank': 'normal'})]
#Get general data
repo = wikidata_site.data_repository()  # this is a DataSite object
item = pywikibot.ItemPage(repo, 'Q42')  # This will be functionally the same as the other item we defined
item.get()  # you need to call it to access any data.
sitelinks = item.sitelinks
aliases = item.aliases
if 'en' in item.labels:
    print('The label in English is: ' + item.labels['en'])
if item.claims:
    if 'P31' in item.claims: # instance of
        print(item.claims['P31'][0].getTarget())
        print(item.claims['P31'][0].sources[0])  # let's just assume it has sources.
The label in English is: Douglas Adams
[[wikidata:Q5]]
OrderedDict([('P248', [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'snaktype': 'value', 'property': 'P248', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 54919}, 'type': 'wikibase-entityid'}, 'hash': '2b369d0a4f1d4b801e734fe84a0b217e13dd2930'})]), ('P214', [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'snaktype': 'value', 'property': 'P214', 'datatype': 'external-id', 'datavalue': {'value': '113230702', 'type': 'string'}, 'hash': '2b369d0a4f1d4b801e734fe84a0b217e13dd2930'})]), ('P813', [Claim.fromJSON(DataSite("wikidata", "wikidata"), {'snaktype': 'value', 'property': 'P813', 'datatype': 'time', 'datavalue': {'value': {'time': '+00000002013-12-07T00:00:00Z', 'precision': 11, 'after': 0, 'before': 0, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}, 'type': 'time'}, 'hash': '2b369d0a4f1d4b801e734fe84a0b217e13dd2930'})])])

IV / The "Claim" class

A Pywikibot object that store Wikidata claims

#For each claim in the claim list get the content of the claim

for clm in clm_list:
    print(clm.toJSON())
    
    print('\nThe claim is another Pywikibot object:')
    print(type(clm))
    
    print('\nThe claim has several methods:')
    print(dir(clm))
    
    print('\nclm.rank = ' + str(clm.rank))
    print('\nclm.id = ' + str(clm.id))
    print('\nclm.isReference = ' + str(clm.isReference))
    print('\nclm.snak = ' + str(clm.snak))
    print('\nclm.on_item = ' + str(clm.on_item))
    
{'mainsnak': {'snaktype': 'value', 'property': 'P2069', 'datatype': 'quantity', 'datavalue': {'value': {'amount': '-1.00115965218076', 'upperBound': '-1.00115965218075', 'lowerBound': '-1.00115965218077', 'unit': 'http://www.wikidata.org/entity/Q737120'}, 'type': 'quantity'}}, 'type': 'statement', 'id': 'Q2225$edaaaf4e-48fd-6503-016c-27d857e55f40', 'rank': 'normal'}

The claim is another Pywikibot object:
<class 'pywikibot.page.Claim'>

The claim has several methods:
['SNAK_TYPES', 'TARGET_CONVERTER', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_formatDataValue', '_formatValue', '_type', 'addQualifier', 'addSource', 'addSources', 'changeRank', 'changeSnakType', 'changeTarget', 'fromJSON', 'getID', 'getRank', 'getSnakType', 'getSources', 'getTarget', 'getType', 'has_qualifier', 'hash', 'id', 'isQualifier', 'isReference', 'on_item', 'qualifierFromJSON', 'qualifiers', 'rank', 'referenceFromJSON', 'removeQualifier', 'removeQualifiers', 'removeSource', 'removeSources', 'repo', 'setRank', 'setSnakType', 'setTarget', 'snak', 'snaktype', 'sources', 'target', 'target_equals', 'toJSON', 'type', 'types', 'value_types']

clm.rank = normal

clm.id = P2069

clm.isReference = False

clm.snak = Q2225$edaaaf4e-48fd-6503-016c-27d857e55f40

clm.on_item = [[wikidata:Q2225]]

V / The target classes

These are Pywikibot object that store Wikidata claims's target.

There is actually several classes depending on the datatype. Herabove a WbQuantity object that represent a quantity with an upper and a lower bound.

#Claim's target is the value of the property
for clm in clm_list:
    
    print('\nFocus on a claim\'s target using getTarget() method:')
    clm_trgt = clm.getTarget()
    print(clm_trgt)
    
    print('\nTarget type is:')
    print(type(clm_trgt))
    
    print('\nTarget class\'s methods are:')
    print(dir(clm_trgt))
    
    print('\nclm_trgt.amount = ' + str(clm_trgt.amount))
    print('\nclm_trgt.unit = '+ str(clm_trgt.unit))
Focus on a claim's target using getTarget() method:
{
    "amount": "-1.00115965218076",
    "lowerBound": "-1.00115965218077",
    "unit": "http://www.wikidata.org/entity/Q737120",
    "upperBound": "-1.00115965218075"
}

Target type is:
<class 'pywikibot.WbQuantity'>

Target class's methods are:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_fromdecimal', '_items', '_require_errors', '_todecimal', '_unit', 'amount', 'fromWikibase', 'get_unit_item', 'lowerBound', 'site', 'toWikibase', 'unit', 'upperBound']

clm_trgt.amount = -1.00115965218076

clm_trgt.unit = http://www.wikidata.org/entity/Q737120

VI/ Selecting Item by Wikidata Statement

This is the method to select items using a SPARQL query.

from pywikibot import pagegenerators as pg

with open('pka-query.rq', 'r') as query_file: #The Query is stored in a separated file.
    QUERY = query_file.read()
    print('The content of pka-query.rq is:\n\n'+QUERY)

wikidata_site = pywikibot.Site("wikidata", "wikidata")
generator = pg.WikidataSPARQLPageGenerator(QUERY, site=wikidata_site)

print('\n\nItems in the generator are:')
for item in generator:
    print(item)
The content of pka-query.rq is:

#Items that have a pKa value set
SELECT ?item ?value
WHERE 
{
	?item wdt:P1117 ?value .
}


Items in the generator are:
[[wikidata:Q23993898]]
[[wikidata:Q209569]]
[[wikidata:Q229935]]
[[wikidata:Q2409]]
[[wikidata:Q24007261]]
[[wikidata:Q23994814]]
[[wikidata:Q27076975]]
[[wikidata:Q23995131]]
[[wikidata:Q410621]]
[[wikidata:Q424284]]
[[wikidata:Q190012]]
[[wikidata:Q16391]]
[[wikidata:Q424314]]
[[wikidata:Q57748943]]
[[wikidata:Q26075]]
[[wikidata:Q52353]]
[[wikidata:Q417321]]
[[wikidata:Q16392]]
[[wikidata:Q324628]]
[[wikidata:Q209284]]
[[wikidata:Q16954761]]
[[wikidata:Q173670]]
[[wikidata:Q161233]]
[[wikidata:Q43394722]]
[[wikidata:Q413283]]
[[wikidata:Q903345]]
[[wikidata:Q23993292]]
[[wikidata:Q184832]]
[[wikidata:Q3771739]]
[[wikidata:Q23978438]]
[[wikidata:Q410521]]
[[wikidata:Q242627]]
[[wikidata:Q22829186]]
[[wikidata:Q20035886]]
[[wikidata:Q2462]]
[[wikidata:Q58447]]
[[wikidata:Q288188]]
[[wikidata:Q23638211]]
[[wikidata:Q188017]]
[[wikidata:Q417571]]
[[wikidata:Q23637022]]
[[wikidata:Q408925]]
[[wikidata:Q186474]]
[[wikidata:Q412845]]
[[wikidata:Q421761]]
[[wikidata:Q410234]]
[[wikidata:Q2474643]]
[[wikidata:Q23636070]]
[[wikidata:Q420554]]
[[wikidata:Q23978286]]
[[wikidata:Q139199]]
[[wikidata:Q23994813]]
[[wikidata:Q319541]]
[[wikidata:Q209354]]
[[wikidata:Q409013]]
[[wikidata:Q18378717]]
[[wikidata:Q407411]]
[[wikidata:Q182990]]
[[wikidata:Q23779745]]
[[wikidata:Q24004478]]
[[wikidata:Q1147539]]
[[wikidata:Q24014027]]
[[wikidata:Q423953]]
[[wikidata:Q133145]]
[[wikidata:Q259997]]
[[wikidata:Q48318]]
[[wikidata:Q407217]]
[[wikidata:Q903362]]
[[wikidata:Q409304]]
[[wikidata:Q1209336]]
[[wikidata:Q180341]]
[[wikidata:Q409692]]
[[wikidata:Q484940]]
[[wikidata:Q285790]]
[[wikidata:Q408822]]
[[wikidata:Q24004551]]
[[wikidata:Q4118]]
[[wikidata:Q410465]]
[[wikidata:Q60235]]
[[wikidata:Q407796]]
[[wikidata:Q218642]]
[[wikidata:Q413822]]
[[wikidata:Q421035]]
[[wikidata:Q61457]]
[[wikidata:Q41576]]
[[wikidata:Q849881]]
[[wikidata:Q620730]]
[[wikidata:Q23993507]]
[[wikidata:Q424000]]
[[wikidata:Q420331]]
[[wikidata:Q211891]]
[[wikidata:Q413334]]
[[wikidata:Q1637944]]
[[wikidata:Q24008333]]
[[wikidata:Q26997410]]
[[wikidata:Q23775141]]
[[wikidata:Q414196]]
[[wikidata:Q167934]]
[[wikidata:Q23993534]]
[[wikidata:Q18344129]]
[[wikidata:Q107184]]
[[wikidata:Q408898]]
[[wikidata:Q14982]]
[[wikidata:Q905558]]
[[wikidata:Q23978434]]
[[wikidata:Q223069]]
[[wikidata:Q23636732]]
[[wikidata:Q184782]]
[[wikidata:Q2468]]
[[wikidata:Q410116]]
[[wikidata:Q3269240]]
[[wikidata:Q2676918]]
[[wikidata:Q3143743]]
[[wikidata:Q153]]
[[wikidata:Q47512]]
[[wikidata:Q213580]]
[[wikidata:Q159683]]
[[wikidata:Q4634183]]
[[wikidata:Q4030654]]
[[wikidata:Q24004560]]
[[wikidata:Q24004759]]
[[wikidata:Q171877]]
[[wikidata:Q104334]]
[[wikidata:Q407743]]
[[wikidata:Q22124685]]
[[wikidata:Q23978210]]
[[wikidata:Q44288044]]
[[wikidata:Q23978293]]
[[wikidata:Q170545]]
[[wikidata:Q161249]]
[[wikidata:Q178450]]
[[wikidata:Q24007763]]
[[wikidata:Q189298]]
[[wikidata:Q22266828]]
[[wikidata:Q899683]]
[[wikidata:Q49546]]
[[wikidata:Q4596742]]
[[wikidata:Q288208]]
[[wikidata:Q23978208]]
[[wikidata:Q23994379]]
[[wikidata:Q411362]]
[[wikidata:Q5276432]]
[[wikidata:Q23978281]]
[[wikidata:Q409141]]
[[wikidata:Q164785]]
[[wikidata:Q187045]]
[[wikidata:Q23698414]]
[[wikidata:Q410243]]
[[wikidata:Q23636064]]
[[wikidata:Q23978297]]
[[wikidata:Q417852]]
[[wikidata:Q27261795]]
[[wikidata:Q23978278]]
[[wikidata:Q23993346]]
[[wikidata:Q23767]]
[[wikidata:Q903311]]
[[wikidata:Q4734923]]
[[wikidata:Q410387]]
[[wikidata:Q57281678]]
[[wikidata:Q484583]]
[[wikidata:Q6477050]]
[[wikidata:Q19903909]]
[[wikidata:Q169313]]
[[wikidata:Q4087]]
[[wikidata:Q191381]]
[[wikidata:Q2823255]]
[[wikidata:Q22829159]]
[[wikidata:Q411119]]
[[wikidata:Q318369]]
[[wikidata:Q190227]]
[[wikidata:Q23636061]]
[[wikidata:Q414207]]
[[wikidata:Q23978270]]
[[wikidata:Q417414]]
[[wikidata:Q424966]]
[[wikidata:Q485277]]
[[wikidata:Q83320]]
[[wikidata:Q161495]]
[[wikidata:Q170591]]
[[wikidata:Q23779747]]
[[wikidata:Q194406]]
[[wikidata:Q23978431]]
[[wikidata:Q191700]]
[[wikidata:Q23889676]]
[[wikidata:Q23637413]]
[[wikidata:Q208451]]
[[wikidata:Q181136]]
[[wikidata:Q194207]]
[[wikidata:Q412033]]
[[wikidata:Q23698430]]
[[wikidata:Q483752]]
[[wikidata:Q2542075]]
[[wikidata:Q1208441]]
[[wikidata:Q23637400]]
[[wikidata:Q407699]]
[[wikidata:Q130336]]
[[wikidata:Q23636743]]
[[wikidata:Q408022]]
[[wikidata:Q497073]]
[[wikidata:Q20963648]]
[[wikidata:Q412316]]
[[wikidata:Q181003]]
[[wikidata:Q413374]]

It is of course possible to pass arguments in the string :

property = 'P1117'

QUERY2 = f'''
SELECT ?item ?value
WHERE 
{{
  ?item wdt:{property} ?value .
}}
'''

generator2 = pg.WikidataSPARQLPageGenerator(QUERY2, site=wikidata_site)

print('Items in the generator are:')
for item in generator2:
    print(item)
Items in the generator are:
[[wikidata:Q23993898]]
[[wikidata:Q209569]]
[[wikidata:Q229935]]
[[wikidata:Q2409]]
[[wikidata:Q24007261]]
[[wikidata:Q23994814]]
[[wikidata:Q27076975]]
[[wikidata:Q23995131]]
[[wikidata:Q410621]]
[[wikidata:Q424284]]
[[wikidata:Q190012]]
[[wikidata:Q16391]]
[[wikidata:Q424314]]
[[wikidata:Q57748943]]
[[wikidata:Q26075]]
[[wikidata:Q52353]]
[[wikidata:Q417321]]
[[wikidata:Q16392]]
[[wikidata:Q324628]]
[[wikidata:Q209284]]
[[wikidata:Q16954761]]
[[wikidata:Q173670]]
[[wikidata:Q161233]]
[[wikidata:Q43394722]]
[[wikidata:Q413283]]
[[wikidata:Q903345]]
[[wikidata:Q23993292]]
[[wikidata:Q184832]]
[[wikidata:Q3771739]]
[[wikidata:Q23978438]]
[[wikidata:Q410521]]
[[wikidata:Q242627]]
[[wikidata:Q22829186]]
[[wikidata:Q20035886]]
[[wikidata:Q2462]]
[[wikidata:Q58447]]
[[wikidata:Q288188]]
[[wikidata:Q23638211]]
[[wikidata:Q188017]]
[[wikidata:Q417571]]
[[wikidata:Q23637022]]
[[wikidata:Q408925]]
[[wikidata:Q186474]]
[[wikidata:Q412845]]
[[wikidata:Q421761]]
[[wikidata:Q410234]]
[[wikidata:Q2474643]]
[[wikidata:Q23636070]]
[[wikidata:Q420554]]
[[wikidata:Q23978286]]
[[wikidata:Q139199]]
[[wikidata:Q23994813]]
[[wikidata:Q319541]]
[[wikidata:Q209354]]
[[wikidata:Q409013]]
[[wikidata:Q18378717]]
[[wikidata:Q407411]]
[[wikidata:Q182990]]
[[wikidata:Q23779745]]
[[wikidata:Q24004478]]
[[wikidata:Q1147539]]
[[wikidata:Q24014027]]
[[wikidata:Q423953]]
[[wikidata:Q133145]]
[[wikidata:Q259997]]
[[wikidata:Q48318]]
[[wikidata:Q407217]]
[[wikidata:Q903362]]
[[wikidata:Q409304]]
[[wikidata:Q1209336]]
[[wikidata:Q180341]]
[[wikidata:Q409692]]
[[wikidata:Q484940]]
[[wikidata:Q285790]]
[[wikidata:Q408822]]
[[wikidata:Q24004551]]
[[wikidata:Q4118]]
[[wikidata:Q410465]]
[[wikidata:Q60235]]
[[wikidata:Q407796]]
[[wikidata:Q218642]]
[[wikidata:Q413822]]
[[wikidata:Q421035]]
[[wikidata:Q61457]]
[[wikidata:Q41576]]
[[wikidata:Q849881]]
[[wikidata:Q620730]]
[[wikidata:Q23993507]]
[[wikidata:Q424000]]
[[wikidata:Q420331]]
[[wikidata:Q211891]]
[[wikidata:Q413334]]
[[wikidata:Q1637944]]
[[wikidata:Q24008333]]
[[wikidata:Q26997410]]
[[wikidata:Q23775141]]
[[wikidata:Q414196]]
[[wikidata:Q167934]]
[[wikidata:Q23993534]]
[[wikidata:Q18344129]]
[[wikidata:Q107184]]
[[wikidata:Q408898]]
[[wikidata:Q14982]]
[[wikidata:Q905558]]
[[wikidata:Q23978434]]
[[wikidata:Q223069]]
[[wikidata:Q23636732]]
[[wikidata:Q184782]]
[[wikidata:Q2468]]
[[wikidata:Q410116]]
[[wikidata:Q3269240]]
[[wikidata:Q2676918]]
[[wikidata:Q3143743]]
[[wikidata:Q153]]
[[wikidata:Q47512]]
[[wikidata:Q213580]]
[[wikidata:Q159683]]
[[wikidata:Q4634183]]
[[wikidata:Q4030654]]
[[wikidata:Q24004560]]
[[wikidata:Q24004759]]
[[wikidata:Q171877]]
[[wikidata:Q104334]]
[[wikidata:Q407743]]
[[wikidata:Q22124685]]
[[wikidata:Q23978210]]
[[wikidata:Q44288044]]
[[wikidata:Q23978293]]
[[wikidata:Q170545]]
[[wikidata:Q161249]]
[[wikidata:Q178450]]
[[wikidata:Q24007763]]
[[wikidata:Q189298]]
[[wikidata:Q22266828]]
[[wikidata:Q899683]]
[[wikidata:Q49546]]
[[wikidata:Q4596742]]
[[wikidata:Q288208]]
[[wikidata:Q23978208]]
[[wikidata:Q23994379]]
[[wikidata:Q411362]]
[[wikidata:Q5276432]]
[[wikidata:Q23978281]]
[[wikidata:Q409141]]
[[wikidata:Q164785]]
[[wikidata:Q187045]]
[[wikidata:Q23698414]]
[[wikidata:Q410243]]
[[wikidata:Q23636064]]
[[wikidata:Q23978297]]
[[wikidata:Q417852]]
[[wikidata:Q27261795]]
[[wikidata:Q23978278]]
[[wikidata:Q23993346]]
[[wikidata:Q23767]]
[[wikidata:Q903311]]
[[wikidata:Q4734923]]
[[wikidata:Q410387]]
[[wikidata:Q57281678]]
[[wikidata:Q484583]]
[[wikidata:Q6477050]]
[[wikidata:Q19903909]]
[[wikidata:Q169313]]
[[wikidata:Q4087]]
[[wikidata:Q191381]]
[[wikidata:Q2823255]]
[[wikidata:Q22829159]]
[[wikidata:Q411119]]
[[wikidata:Q318369]]
[[wikidata:Q190227]]
[[wikidata:Q23636061]]
[[wikidata:Q414207]]
[[wikidata:Q23978270]]
[[wikidata:Q417414]]
[[wikidata:Q424966]]
[[wikidata:Q485277]]
[[wikidata:Q83320]]
[[wikidata:Q161495]]
[[wikidata:Q170591]]
[[wikidata:Q23779747]]
[[wikidata:Q194406]]
[[wikidata:Q23978431]]
[[wikidata:Q191700]]
[[wikidata:Q23889676]]
[[wikidata:Q23637413]]
[[wikidata:Q208451]]
[[wikidata:Q181136]]
[[wikidata:Q194207]]
[[wikidata:Q412033]]
[[wikidata:Q23698430]]
[[wikidata:Q483752]]
[[wikidata:Q2542075]]
[[wikidata:Q1208441]]
[[wikidata:Q23637400]]
[[wikidata:Q407699]]
[[wikidata:Q130336]]
[[wikidata:Q23636743]]
[[wikidata:Q408022]]
[[wikidata:Q497073]]
[[wikidata:Q20963648]]
[[wikidata:Q412316]]
[[wikidata:Q181003]]
[[wikidata:Q413374]]

VII/ Using the sandbox wikidata site for tests

We will use the sandbox site on https://test.wikidata.org/wiki/Q194617

site = pywikibot.Site("test", "wikidata")
repo = site.data_repository()
item = pywikibot.ItemPage(repo, "Q194617")

VIII/ Changing labels, descriptions and alias

We can use specific Pywikibot functions :

new_labels = {"en": "bear2", "de": "Bär2"}
new_descr = {"en": "gentle creature of the forrest2", "de": "Friedlicher Waldbewohner2"}
new_alias = {"en": ["brown bear2", "grizzly bear2", "polar bear2"], "de": ["Braunbär2", "Grizzlybär2", "Eisbär2"]}
item.editLabels(labels=new_labels, summary="Setting new labels2.")
item.editDescriptions(new_descr, summary="Setting new descriptions2.")
item.editAliases(new_alias, summary="Setting new aliases2.")

Or we can use the general editEntity() function :

data = {"labels": {"en": "bear", "de": "Bär"},
  "descriptions": {"en": "gentle creature of the forrest", "de": "Friedlicher Waldbewohner"},
       "aliases": {"en": ["brown bear", "grizzly bear", "polar bear"], "de": ["Braunbär", "Grizzlybär", "Eisbär"]},
     "sitelinks": [{"site": "enwiki", "title": "Bear"}, {"site": "dewiki", "title": "Bär"}]}
item.editEntity(data, summary=u'Edited item: set labels, descriptions, aliases')
WARNING: API error modification-failed: Item [[Q94919|Q94919]] already has label "bear" associated with language code en, using the same description text.
---------------------------------------------------------------------------
APIError                                  Traceback (most recent call last)
/srv/paws/pwb/pywikibot/page.py in handle(func, self, *args, **kwargs)
    107         try:
--> 108             func(self, *args, **kwargs)
    109         # TODO: other "expected" error types to catch?

/srv/paws/pwb/pywikibot/page.py in editEntity(self, data, **kwargs)
   4189         updates = self.repo.editEntity(self._defined_by(singular=True), data,
-> 4190                                        baserevid=baserevid, **kwargs)
   4191         self.latest_revision_id = updates['entity']['lastrevid']

/srv/paws/pwb/pywikibot/site.py in callee(self, *args, **kwargs)
   1321                 raise Exception('Not implemented')
-> 1322             return fn(self, *args, **kwargs)
   1323 

/srv/paws/pwb/pywikibot/site.py in editEntity(self, identification, data, bot, **kwargs)
   7715         req = self._simple_request(**params)
-> 7716         data = req.submit()
   7717         return data

/srv/paws/pwb/pywikibot/data/api.py in submit(self)
   2080 
-> 2081                 raise APIError(**result['error'])
   2082             except TypeError:

APIError: modification-failed: Item [[Q94919|Q94919]] already has label "bear" associated with language code en, using the same description text. [messages:[{'name': 'wikibase-validator-label-with-description-conflict', 'parameters': ['bear', 'en', '[[Q94919|Q94919]]'], 'html': {'*': 'Item <a href="/wiki/Q94919" title="Q94919">Q94919</a> already has label "bear" associated with language code en, using the same description text.'}}]; help:See https://test.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes.]

During handling of the above exception, another exception occurred:

OtherPageSaveError                        Traceback (most recent call last)
<ipython-input-19-93f715acf6b7> in <module>()
      3        "aliases": {"en": ["brown bear", "grizzly bear", "polar bear"], "de": ["Braunbär", "Grizzlybär", "Eisbär"]},
      4      "sitelinks": [{"site": "enwiki", "title": "Bear"}, {"site": "dewiki", "title": "Bär"}]}
----> 5 item.editEntity(data, summary=u'Edited item: set labels, descriptions, aliases')

/srv/paws/pwb/pywikibot/page.py in wrapper(self, *args, **kwargs)
    127             pywikibot.async_request(handle, func, self, *args, **kwargs)
    128         else:
--> 129             handle(func, self, *args, **kwargs)
    130 
    131     manage_wrapping(wrapper, func)

/srv/paws/pwb/pywikibot/page.py in handle(func, self, *args, **kwargs)
    119                 if isinstance(err, pywikibot.PageSaveRelatedError):
    120                     raise err
--> 121                 raise pywikibot.OtherPageSaveError(self, err)
    122         if callback:
    123             callback(self, err)

OtherPageSaveError: Edit to page [[Q194617]] failed:
modification-failed: Item [[Q94919|Q94919]] already has label "bear" associated with language code en, using the same description text. [messages:[{'name': 'wikibase-validator-label-with-description-conflict', 'parameters': ['bear', 'en', '[[Q94919|Q94919]]'], 'html': {'*': 'Item <a href="/wiki/Q94919" title="Q94919">Q94919</a> already has label "bear" associated with language code en, using the same description text.'}}]; help:See https://test.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes.]

IX/ Changing claims

In this example, we will change a propery "color" wrongly set to homonymes.

Beware that it is a real example, modifying the real Wikidata.

import pywikibot
from pywikibot import pagegenerators as pg

wikidata_site = pywikibot.Site("wikidata", "wikidata")
wikidata_repo = wikidata_site.data_repository()

property = "P462" # The property "Color" that is to be settled to an item representing a color.

#The error dict has homonymes as keys and colors as values.
#The, items having the color property set a key have to be changed for the value.
error_dict = {"Q13191": "Q39338",    #orange - "fruit": "color"
              "Q897": "Q208045",     #gold - "element": "color"
              "Q753": "Q2722041",   #copper - "element": "color"
              "Q25381": "Q679355",   #amber - "material": "color"
              "Q134862": "Q5069879", #champagne - "drink": "color"
              "Q1090": "Q317802",    #silver - "element": "color"
              "Q1173": "Q797446",    #burgundy - "region": "color
              "Q13411121": "Q5148721", #peach - "fruit": "color"
              }

def correct_claim(generator, key):
    '''This function call call a generator result to find a list of items having
    the color property setted to a key, that represent an homonyme.'''
    for page in generator:
        item_dict = page.get()  #calling the dictionary containing all the values of the item.
        claim_list = item_dict["claims"][property] #calling the claims related the color property (variable settled above)
        for claim in claim_list:
            trgt = claim.getTarget()
            if trgt.id == key: #if a claim target is settled to a key of the errors dictionary
                print(f'Correcting {key} to {error_dict[key]}')
                correct_page = pywikibot.ItemPage(wikidata_repo, error_dict[key], 0) #gettting the right value for the property from the error dict
                claim.changeTarget(correct_page) #changing the target to the right value

for key in error_dict:
    query = f'''
    SELECT ?item
    WHERE 
    {{
      ?item wdt:{property} wd:{key} .
     }}
    ''' #calls items having color settle to an homonyme.
    generator = pg.WikidataSPARQLPageGenerator(query, site=wikidata_site)  #a generator store these items
    generator = wikidata_site.preloadpages(generator, pageprops=True) #improves performance ?
    correct_claim(generator, key)
    

X/ Adding claims

This advanced code create a full claim with a quantity ± uncertainity and sources :

import pywikibot
from pywikibot.data import api
import pprint

# FIXME Hardcoded for test.wikidata
# Define properties and data
p_stated_in = "P149"
p_half_life = "P525"
p_ref_url = "P93"
precision = 10 ** -10
# data = [quantity, uncertainty, unit (Q1748 = hours)]
# source = [stated in item, ref url]
half_life_data = {"uranium-240": {"data": ["14.1", "0.1", "Q1748"],
                                  "source": ["Q1751", "http://www.nndc.bnl.gov/chart/reCenter.jsp?z=92&n=148"]}
                  }

site = pywikibot.Site("test", "wikidata") #Please only modify the test site unless you know what you do !
repo = site.data_repository()

def get_items(site, item_title):
    """
    Requires a site and search term (item_title) and returns the results.
    """
    params = {"action": "wbsearchentities",
              "format": "json",
              "language": "en",
              "type": "item",
              "search": item_title}
    request = api.Request(site=site, **params)
    return request.submit()

def check_claim_and_uncert(item, property, data):
    """
    Requires a property, value, uncertainty and unit and returns boolean.
    Returns the claim that fits into the defined precision or None.
    This will be used to see if the claim is already settled
    """
    item_dict = item.get()
    value, uncert, unit = data
    value, uncert = float(value), float(uncert)
    try:
        claims = item_dict["claims"][property]
    except:
        return None

    try:
        claim_exists = False
        uncert_set = False
        for claim in claims:
            wb_quant = claim.getTarget()
            delta_amount = wb_quant.amount - value
            if abs(delta_amount) < precision:
                claim_exists = True
            delta_lower = wb_quant.amount - wb_quant.lowerBound
            delta_upper = wb_quant.upperBound - wb_quant.amount
            check_lower = abs(uncert - delta_lower) < precision
            check_upper = abs(delta_upper - uncert) < precision
            if check_upper and check_lower:
                uncert_set = True

            if claim_exists and uncert_set:
                return claim
    except:
        return None

def check_source_set(claim, property, data):
    """
    Takes a claim, a property and data.
    Return a boolean
    This will be used to see if the property is already settled
    """
    source_claims = claim.getSources()
    if len(source_claims) == 0:
        return False #if there is no sources, return false

    for source in source_claims:
        try:
            stated_in_claim = source[p_stated_in] #check if the property "stated in" is set
        except:
            return False #if not, we can create a new reference
        for claim in stated_in_claim:
            trgt = claim.target
            if trgt.id == data[0]:
                return True # return true only if the claim exists and is settled accoding to our import dataset

def set_claim(item, property, data):
    """
    Set the claim's property according to our import data
    """
    value, uncert, unit = data #get these variables for our import data
    value, uncert = float(value), float(uncert)
    claim = pywikibot.Claim(repo, property) #create a claim object with wanted property
    unit_item = pywikibot.ItemPage(repo, unit) #create a unit item object with wanted unit
    entity_helper_string = "http://test.wikidata.org/entity/Q1748".format()
    wb_quant = pywikibot.WbQuantity(value, entity_helper_string, uncert) #create a quantity object with wanted quantity
    claim.setTarget(wb_quant) #modify the created claim object and add quantity
    
    item.addClaim(claim, bot=False, summary="Adding half-life claim from NNDC.") #by the end we can add the claim object in the item
    
    print('Running set_claim...\n   On item: ' + str(item) + '\n   Setting claim:\n' + str(claim) + '\n')
    
    return claim

def create_source_claim(claim, source_data):
    trgt_item, ref_url = source_data
    trgt_itempage = pywikibot.ItemPage(repo, trgt_item) #create an item object for the source
    source_claim = pywikibot.Claim(repo, p_stated_in, isReference=True) #create the claim object for the source
    source_claim.setTarget(trgt_itempage) #set the item source object as a target for the claim object
    
    claim.addSources([source_claim]) #by the end we can add the source to the claim
    
    print('Running create_source_claim...\n\n   On claim :\n' + str(claim) + '\n\n   Setting source:\n' + str(source_claim) + '\n')
    
    return True

for key in half_life_data: #since there is actually only 1 key in our example the loop will run once
    search_results = get_items(site, key)
    print('Value of search_result is:\n' + str(search_results) + '\n')
    if len(search_results["search"]) == 1: #only one item shall match the search term (uranium-240)
        item = pywikibot.ItemPage(repo, search_results["search"][0]["id"]) #we will modifiy this item
        print('Value of item from results is:' + str(item) + '\n')
        data = half_life_data[key]["data"] #getting the value of the property from the data we want to import
        print('Value of data is:' + str(data) + '\n')
        source_data = half_life_data[key]["source"] #getting the value of the source of the property from the data we want to import
        print('Value of source_data is:' + str(source_data) + '\n')

        claim = check_claim_and_uncert(item, p_half_life, data) #check if our claim is already settled correctly in wikidata
        print('Value of claim from check_claim_and_uncert is : ' + str(claim) + '\n')
        if claim: # if the claim already exist, we will check if the source exists too and create it if not 
            source = check_source_set(claim, key, source_data)
            print('Value of source is: ' + str(source) + '\n')
            if source:
                pass
            else:
                create_source_claim(claim, source_data)
        else: #if the claim does not exists, we will create it with source
            claim = set_claim(item, p_half_life, data)
            create_source_claim(claim, source_data)
            
    else: #only one item shall match the search term (uranium-240). If more, the program don't know wich one to settle.
        print("No result or too many found for {}.", key)

XI/ Code templates

These are code templates for copy past. It has already be described above.

# Typical generator to iterate over a SPARQL query

import pywikibot
from pywikibot import pagegenerators as pg

with open('pka-query.rq', 'r') as query_file:
    QUERY = query_file.read()

wikidata_site = pywikibot.Site("wikidata", "wikidata")
generator = pg.WikidataSPARQLPageGenerator(QUERY, site=wikidata_site)

print('Items in the generator are:')
for item in generator:
    print(item)
#Create Items

import pywikibot
site = pywikibot.Site("test", "wikidata")

def create_item(site, label_dict):
    new_item = pywikibot.ItemPage(site)
    new_item.editLabels(labels=label_dict, summary="Setting labels")
    # Add description here or in another function
    return new_item.getID()

some_labels = {"en": "Hamburg Main Station", "de": "Hamburg Hauptbahnhof"}
new_item_id = create_item(site, some_labels)