### 前提・実現したいこと
Pythonで、内製ソフトで作られたファイルからデータを抽出しようとしています。
pythonnetで内製ソフトのdll(.NET)から関数を呼び出し、ファイルから必要なデータ(①カラム名②その値(数値))をPython側に受け渡したいです。
②はなんとか取り込めましたが、①がうまく行きません。
### 発生している問題・エラーメッセージ
内製ソフトの関数からは
return array
でC#配列を戻り値としたような形でPython側で受け取っており
Python上で①System.String[,]、②System.Double[,]として取り込んでいます。
②に関しては、
handler = GChandle.Alloc(②, GChandle.Pinned)
pointer = handler.AddrOfPinnedObject().ToInt()
c_buf = (ctypes.c_double * len(②)).from_address(pointer)
value = np.frombuffer(c_buf, dtype=np.float64)
のような形でndarray型に取り込むことができましたが、①の方が最初の一行目で『プリミティブでない、またはblittableでないデータが含まれています』のエラーが出てうまく行きません。
### 試したこと
C#ではString型はピン留めが出来ない(?)とのことで、1行目のオプションを削除して実行したが、今度は2行目で『ハンドルにpinが実行されていません』と怒られます。
なにか.NET側で抽出されたString配列をPython側に読み込ませる方法はありませんでしょうか?
### 補足情報(FW/ツールのバージョンなど)
Python 3.8.10
内製ソフトdllは.NETで作られたライブラリ
あなたの回答
tips
プレビュー