我尝试使用以下参数调用Django函数call_命令:
call_command('test', stdout=content)
{为什么。这将运行不带stdout=content参数的命令:
^{pr2}$我一辈子都不知道如何创建这个关键字。在
PyDict_New();
PyDict_SetItemString(...);
设置一个'stdout'='content'字符串,而不是stdout=content。在
Py_BuildValue("{s=s}", ... , ...)
做同样的事情。在
如果需要的话,我可以得到content PyObject,如果没有Python加引号(将其作为字符串处理),我似乎无法正确地创建stdout关键字参数。在
如何从C API调用call_command('test',stdout=content)?在
请注意,即使在Python中,也可以用相同的方式调用函数:
^{pr2}$“stdout”也是一个带引号的字符串,但它是有效的。您试图获得与Python中相同的语法,即noquotename=noquotevalue,但语法只是一种表示。{“quotedname”:noquotevalue}和noquotename=noquotevalue是表示同一事物的两种不同方法。它们实际上都表示一个字典,其键是字符串,值是对象。这是作为PyObject_Call的第三个参数传递的。在
Py_BuildValue("{s:O}", "stdout", content_obj)
相关问题 更多 >
编程相关推荐