L'établissement de laquelle un objet peut pas être marinés

Je suis de la réception d'un objet, t, à partir d'une api de type Object. Je suis incapable de cornichon, l'obtention de l'erreur:

  File "p.py", line 55, in <module>
    pickle.dump(t, open('data.pkl', 'wb'))
  File "/usr/lib/python2.6/pickle.py", line 1362, in dump
    Pickler(file, protocol).dump(obj)
  File "/usr/lib/python2.6/pickle.py", line 224, in dump
    self.save(obj)
  File "/usr/lib/python2.6/pickle.py", line 313, in save
    (t.__name__, obj))
pickle.PicklingError: Can't pickle 'Object' object: <Object object at 0xb77b11a0>

Quand je ne les suivants:

for i in dir(t): print(type(i))

Je ne reçois que des objets de chaîne:

<type 'str'>
<type 'str'>
<type 'str'>
...
<type 'str'>
<type 'str'>
<type 'str'>

Comment puis-je imprimer le contenu de mon Object objet afin de comprendre pourquoi il ne peut pas être marinés?

Il est aussi possible que l'objet contient C les pointeurs de QT objets, auquel cas il ne serait pas logique pour moi de cornichons à l'objet. Mais encore une fois je voudrais voir la structure interne de l'objet afin d'établir cette.

Il semble que ce est quelque chose que vous auriez debug par l'enquête sur le Object type lui-même, pas l'instance.
dir() renvoie une liste de chaîne de caractères des noms de variables, et non pas les valeurs des variables elles-mêmes.

OriginalL'auteur Baz | 2015-05-28