1

Python インタープリターによってスローされる典型的なエラー メッセージが与えられた場合:

TypeError: <sqlalchemy.orm.dynamic.AppenderBaseQuery object at 0x3506490> is not JSON serializable

そのメモリ アドレスを使用して、Python シェルを使用して問題のあるオブジェクトを見つけることはできますか?

4

2 に答える 2

2

いいえ、できません。そのアドレスの唯一の目的は、デバッグ目的でオブジェクトを識別することです。

于 2013-10-07T22:01:56.027 に答える
0

あなたが本当に、本当にしたいのなら、それは不可能ではありません。ただ難しい、そして非常に悪い考えです。

CPython ではctypes、数値を任意の型へのポインターに変換するために使用できます。sys.executableそして、他のライブラリと同じように、(および/または実際のコードがある so/dll/framework から)関数を読み込んで呼び出します。また、C API 構造体に一致する構造体を定義します。

本当に気をつけていれば、すべてを完全に破壊する代わりに、すぐに segfault が発生します。本当に、本当に気をつけていれば、セグメンテーション違反さえせずに、不快なハッキングを実行できる場合があります。

ただし、この場合、それがあなたに何の役にも立たない可能性は低いです。確かに、ある時点sqlalchemy.orm.dynamic.AppenderBaseQueryで 0x3506490 にオブジェクトがありました…しかし、そのオブジェクトが範囲外になるとすぐに、おそらく解放されたので、その場所に何かがあるかもしれません…</p>

于 2013-10-07T23:05:13.757 に答える