-
Notifications
You must be signed in to change notification settings - Fork 0
/
wiki_id_lookup.py
35 lines (30 loc) · 1.19 KB
/
wiki_id_lookup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import requests
def get_wikidata_entry_by_id(wikidata_id):
base_url = "https://www.wikidata.org/w/api.php"
params = {
"action": "wbgetentities",
"format": "json",
"ids": wikidata_id
}
response = requests.get(base_url, params=params)
data = response.json()
if "entities" in data:
entity = data["entities"].get(wikidata_id)
return entity
else:
return None
# Example usage
wikidata_id = "Q61" # Replace with the desired Wikidata ID
entity_data = get_wikidata_entry_by_id(wikidata_id)
if entity_data:
print("Entity ID:", entity_data["id"])
print("Entity Label:", entity_data["labels"]["en"]["value"])
print("Description:", entity_data["descriptions"]["en"]["value"])
# You can access other properties as needed
print("\nEnglish Properties:")
for prop_id, prop_data in entity_data.get("claims", {}).items():
if "datavalue" in prop_data["mainsnak"] and "value" in prop_data["mainsnak"]["datavalue"]:
if prop_data["mainsnak"]["datavalue"]["value"].get("language") == "en":
print(prop_id, "-", prop_data["mainsnak"]["datavalue"]["value"]["text"])
else:
print("Entity not found.")