Найдите Q-ID (из Викиданных) с идентификатором имени пользователя Twitter. (Питон)

У меня есть список проверенных идентификаторов пользователей Twitter.

data['screen_name'] = [MOFAJapan_en, serenawilliams, JeffBezos ....]
data['twitter_ids'] =  [303735625, 26589987, 15506669 ....]

и я хочу получить их соответствующие Q-ID из Викиданных. Для приведенных выше идентификаторов Twitter-username-ID это будет выглядеть примерно так:

q_id_list = [Q222241, Q11459, Q312556 ....]

Здесь я столкнулся с небольшой сложностью: если вы ищете MOFAJapan_en или MOFA of Japan, API Викиданных не сможет его распознать. Однако у MOFAJapan есть страница викиданных.

Я знаю, что свойство # для имени пользователя Twitter — P2002, но как мне запросить его, не зная Q-ID?

Заранее спасибо.

Поскольку вы добавили оба тега: вы используете конечную точку API или SPARQL? Можете ли вы отредактировать свой вопрос, включив в него то, что вы пробовали?

Stefan - brox IT-Solutions 14.09.2022 10:22

@Stefan-broxIT-Solutions любой из них подходит, но я прямо сейчас делаю вызов API, используя python-запросы. Я также нашел Q-id из API поиска Google, а затем получил страницу данных вики с этим Q-id, однако она не работает должным образом. Просто нужно искать Q-id на основе идентификатора имени пользователя Twitter.

Yash 19.09.2022 05:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Учитывая список имен Twitter (внутри VALUES), этот запрос SPARQL найдет людей:

SELECT ?twitterName ?person
WHERE {

  VALUES ?twitterName {
    "MOFAJapan_en"
    "serenawilliams"
    "JeffBezos"
  }

  ?person wdt:P2002 ?twitterName .
  
}

Он ничего не найдет для MOFAJapan_en, так как правильное значение, похоже, MofaJapan_en. Чтобы игнорировать регистр, вы можете использовать FILTER с LCASE, но это повысит производительность во время выполнения:

SELECT ?twitterName ?person
WHERE {

  VALUES ?twitterName_anyCase {
    "MOFAJapan_en"
    "serenawilliams"
    "JeffBezos"
  }
  
  FILTER( LCASE(?twitterName_anyCase) = LCASE(?twitterName) ) .

  ?person wdt:P2002 ?twitterName .
  
}

Спасибо @Stefan - Brox IT-Solutions. Это сработало отлично.

Yash 21.09.2022 10:41

Другие вопросы по теме