にPythonの辞書の変換:私は次のエントリでPythonの辞書を持っているctypesの構造
struct CA {
char *Keys;
float *Values;
char *Title;
int Index;
};
void myfunc (struct CA *in, int n);
:
Tmp={'Name1': [10.0, 20.0, 'Title1', 1], 'Name2': [5.0, 25.0, 'Title2', 2]}
私は、関数は次のように定義されたC-関数にこれを渡したいですPython側では、
class CA(ctypes.Structure):
_fields_ = [("Keys", ctypes.POINTER(ctypes.c_char_p)),
("Values", ctypes.POINTER(ctypes.c_float)),
("Title", ctypes.POINTER(ctypes.c_char_p)),
("Index", ctypes.c_int)]
のようなctypes構造を作成し、次のコードを使用してCAの配列を作成しました。
CAarray = CA * 2
は、今私は
k = Tmp.keys()
for (j, _) in enumerate(k):
CAarray[j].Keys = _
CAarray[j].Values = Tmp[_][:2]
CAarray[j].Title = Tmp[_][2]
CAarray[j].Index = Tmp[_][3]
そのようなループにCAarrayへのTmpを割り当てたい私は、構文が正しい取得するために苦労してきた、これまで失敗しています。助けて。
Python変数とctypes変数間の変換を処理できるルーチン/ libはありますか?
rolika申し訳ありませんが、それは動作しません。 ca_arrayがC関数myfuncに渡されると(クエリを参照)、私はすべての値を取得します。 myfuncの最初の引数は構造体CAの配列です。 – Rak