我从网站的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',但是有更有效的方法吗?
答案 0 :(得分: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'}