Я пытаюсь использовать модели Lua Викиданных.
Мне нужно найти определенный идентификатор в объектах Викиданных:
subjectitemofthisproperty = 'Q' .. tostring( entity['claims']['P1629'][1]["mainsnak"]["datavalue"]["value"]["numeric-id"] )
Основная проблема заключается в том, что у некоторых сущностей нет подполя entity['claims']['P1629'][1]["mainsnak"]["datavalue"]["value"]["numeric-id"]
.
Чтобы Lua вернул:
Ошибка Lua в модуле: LoPwS_row в строке 80: попытка проиндексировать поле «P1629» (нулевое значение).
If I do a :
if entity['claims']['P1629'][1]["mainsnak"]["datavalue"]["value"]["numeric-id"] ~= nil then
Это не сработает, потому что условие вызывает поле, а затем возвращает ту же ошибку.
Есть ли простое решение для проверки существования поля? Спасибо!
['P1629']
не существует. - person wsha   schedule 03.11.2018