私はC拡張機能を書いていますが、引数としてdictを受け取る方法にかなり迷っています。ドキュメントにはこれを実現する方法の詳細がないため、引数をPythonオブジェクトとして解析し、それをdictとして操作しようとしました。
PyTypeObject *dict;
if(!PyArg_ParseTuple(args, "o", &dict))
return NULL;
しかし、コードは解析に失敗します:
Python 2.7.2 (default, Jun 20 2012, 16:23:33)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import plotting
>>> plotting.plot({'wff':0})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be impossible<bad format char>, not dict
エラーメッセージから理解できる限り、charの形式は間違っています(「o」はPythonオブジェクトを表す必要があると思いました)。
Python dictをCポインターに解析するための最良の方法は何ですか?ドキュメントを調べていますが、これに似たものは見つかりませんでした。
ありがとうございました。