0

我从网站的 API 中检索数据并使用 json.loads(some_data) 对它们进行反序列化。Json 在每个键和值之前返回一个包含“u”的字典,如下所示:

data = {u'y_coordinate': u'1902125', u'case_number': u'HW301956', u'domestic': False}

现在我想通过执行以下操作从 Django 模型中实例化一个对象:

obj = Model(**data)

但是,我得到'TypeError:init()关键字必须是字符串'所以我想知道问题是否来自键和值前面的'u',如果是,我怎样才能摆脱它创建对象?

我知道我可以编写一个函数来循环遍历数据并在遇到字符时摆脱'u',但是有没有更有效的方法呢?

4

1 回答 1

0

您需要遍历字典,只要它是一个unicode.

>>> {key.encode('utf8') if isinstance(key, unicode) else key:value for (key, value) in data.iteritems()}
{'y_coordinate': u'1902125', 'domestic': False, 'case_number': u'HW301956'}
于 2013-06-10T20:56:45.017 回答