интро.
У меня есть приложение C ++, я использую SWIG для запуска методов GetObjects
и PutObjects
, которые определены в коде Python. GetObjects
метод открывает отформатированный файл JSON, берет оттуда объекты и возвращает их обратно в приложение C ++. В то время как метод PutObjects
получает объекты из приложения C ++, открывает отформатированный файл JSON для записи и сохраняет их там.
Код довольно распространен и использует функции MyJSONDecode и MyJSONEncode для взаимодействия между объектами python и словарями json.
Теперь проблема.
Swig преобразует класс MyObject
C ++ в класс Python, называемый MyObject
, расположенный в модуле abc
. Я использую оператор import abc
, чтобы использовать его далее в коде, подобном abc.MyObject()
.
abc.MyObject
является SwigPyObject
и не имеет словаря (__dict__
член).
Поэтому я не могу перебрать MyObject.__dict__
внутри функции MyJSONEncode, чтобы создать словарь, который должен быть возвращен функцией, и, следовательно, создать формат JSON.
Но у MyObject есть свойства, например, url или name и так далее. Как я могу перебрать свойства?
При необходимости я предоставлю вам код. Просто дай мне знать. И надеюсь, в общем, моя проблема понята.
В ожидании доброго ответа:)