【问题标题】:Python/PHPSerialize TypeError: 'method' object does not support item assignmentPython/PHPSerialize TypeError:“方法”对象不支持项目分配
【发布时间】:2014-06-30 20:19:45
【问题描述】:

我想在 Python 3 中设置一个值。它是通过 PHPSerialize 反序列化的,我相信它是一个字典,但我遇到了错误:

TypeError: 'method' object does not support item assignment.

我的代码:

def setValue(self, p, set):
    a = self.getData()
    a[p] = set
    return self.updateData(a)

def getData (self):
    self.mysql.execute('SELECT data FROM users WHERE id='+str(self.id))
    result=self.mysql.fetchone()
    return phpserialize.loads(result[0])

帮助?

【问题讨论】:

    标签: php python serialization


    【解决方案1】:

    你能打印出isinstance(result, dict) 的结果吗?这将检查“方法”是否真的是一个字典对象。它很可能被初始化为不可变的东西。虽然我不确定这个“方法”对象是在哪里初始化的,但使用results = copy.deepcopy(dictionary_object_here) 来保留字典的结构可能会有所帮助。有关“自我”所指类的其他信息会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 2016-07-31
      • 2014-02-18
      • 2017-03-26
      • 2021-08-05
      • 1970-01-01
      相关资源
      最近更新 更多