我有一个词典列表:
arr= [{'comment': u'NoComment',
'creator': u'',
'short': u'WQhBxVA',
'url': u'https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-django/tp-un-raccourcisseur-d-url',
'visits': 2},
{'comment': u'NoComment',
'creator': u'',
'short': u'xeSkCWB',
'url': u'https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-django/tp-un-raccourcisseur-d-urlfze',
'visits': 0}]
要将它传递给request.session字段,我想将其转换为JSON。因此我有arrj = json.dumps(arr)
但是,当我对其进行反序列化时,我无法访问词典:
arro = json.loads(arrj)
以下是arro的内容:
[{u'comment': u'NoComment',
u'creator': u'',
u'short': u'WQhBxVA',
u'url': u'https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-django/tp-un-raccourcisseur-d-url',
u'visits': 2},
{u'comment': u'NoComment',
u'creator': u'',
u'short': u'xeSkCWB',
u'url': u'https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-django/tp-un-raccourcisseur-d-urlfze',
u'visits': 0}]
由于u(unicode标签?),arro[0].url
这样的调用会引发AttributeError: 'dict' object has no attribute 'url'
我有没有办法获得反序列化字典数组的url
字段?
答案 0 :(得分:2)
这不是一个真正的JSON问题。字典不会将其键作为属性公开。使用索引:
arro[0]['url']
带有ASCII字符的键会自动解码以匹配Unicode键,因此'url'
或u'url'
都可以使用。
答案 1 :(得分:1)
您不能以dict.key
的形式访问dict内的项目,您需要使用下标 - dict[key]
进行访问。示例 -
arro[0]['url']
此错误与预先设置为字符串的u
无关。