Всем привет.
Написал я на питоне XML парсер в виде класса и все работает круто.
Захотел я этот парсер попользовать в С++ и все бы ничего, кроме одного момента.
В итоге после работы этого класса некоторые функции возвращают словари или листы, а итоговый результат одного из методов представляет собой следующую структуру
[[[], {}], ...]
и она может быть реально длинной.
Вот как бы правильно это обработать на С-стороне. Понятно, что я использую следующий момент
pFunc = PyDict_GetItemString(pDict, argv[1]);
if (PyCallable_Check(pFunc))
{
pRetValue = PyObject_CallObject(pFunc, NULL);
printf("Result of function %s:\n%s\n", argv[1], PyString_AsString(pRetValue));
Py_DecRef(pRetValue);
}
else
{
printf("No such function %s\n", argv[1]);
return 2;
}
Ну тема я думаю из этого куска понятна.
вот получил я в pRetValue этот лист, которые содержит в себе все что придется. Что мне с ним делать?
Дабы получить набор данных в каком-нибудь std::vector для листов и std::map для словарей (типы указаны не как абсолют, а просто std пример того, что хочется).
Как бы это сделать и нормально с ним поработать? Скажите ПЛЗ.
ЗЫ Слово в админам, модераторам и иже с ними (точнее вами
) — может увидят. Если уж ввели раздел динамические языки, неплохо бы и добавить тэги кода для питона луа и возможно руби, хотя я его не пользую и мне оно не нужно
Предложение не более как вариант. Даже php с каким-то там sql'ем есть, а питона нет
Здравствуйте, R1K0, Вы писали:
RK>Предложение не более как вариант. Даже php с каким-то там sql'ем есть, а питона нет
Питон есть. Просто не показывается
print "Hello, world!"
Здравствуйте, R1K0, Вы писали:
RK>вот получил я в pRetValue этот лист, которые содержит в себе все что придется. Что мне с ним делать?
RK>Дабы получить набор данных в каком-нибудь std::vector для листов и std::map для словарей (типы указаны не как абсолют, а просто std пример того, что хочется).
RK>Как бы это сделать и нормально с ним поработать? Скажите ПЛЗ.
Про
Boost.Python слыхал?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Здравствуйте, eugals, Вы писали:
RK>>Как бы это сделать и нормально с ним поработать? Скажите ПЛЗ.
E>Про Boost.Python слыхал?
Слыхал. Но для начала хочется посмотреть, как это сделано на уровне чистого API, дабы используя Питона в дальнейшем представлять — а как оно там все.
Неужели стандартное API Питона не предоставляет возможности работы с такими фундаментальными вещами как последовательности и словари ????
Здравствуйте, R1K0, Вы писали:
E>>Про Boost.Python слыхал?
RK>Слыхал. Но для начала хочется посмотреть, как это сделано на уровне чистого API, дабы используя Питона в дальнейшем представлять — а как оно там все.
RK>Неужели стандартное API Питона не предоставляет возможности работы с такими фундаментальными вещами как последовательности и словари ????
А ты загляни в ту ссылку, которую я дал выше. Там первый же кусочек кода как раз на эту тему.