1

ネットワークを介してさまざまなオブジェクトを送受信します。私のアプリケーションでは、サーバーはピクルまたは文字列を受け取ることができます。取得したデータがピクルスか文字列かを知る方法はありますか?

私は試した:

class C:
    pass


if __name__ == "__main__":

    c = C()

    data = pickle.dumps(c)
    key = 'cryptokey'

    print isinstance(data, basestring)
    print isinstance(key, basestring)

    print type(data)
    print type(key)

ただし、出力は役に立ちません。次のように表示されます。

True
True
<type 'str'>
<type 'str'>

そのため、ピクルと文字列を同じように扱っているようです。何か案は?

4

2 に答える 2

0

Python 3 の場合、 is の結果がpickle.dumpsバイト オブジェクトではないため、これは当てはまりません。

In [1]: import pickle                                                    

In [2]: test = 'mystring'                                                

In [3]: pickle.dumps(test)                                               
Out[3]: b'\x80\x03X\x08\x00\x00\x00mystringq\x00.'

In [4]: isinstance(_3,str)                                               
Out[4]: False
于 2018-11-30T12:11:57.010 に答える