Json到词典列表

时间:2015-08-06 19:00:08

标签: python arrays json dictionary

我有一个词典列表:

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字段?

2 个答案:

答案 0 :(得分:2)

这不是一个真正的JSON问题。字典不会将其键作为属性公开。使用索引:

arro[0]['url']

带有ASCII字符的键会自动解码以匹配Unicode键,因此'url'u'url'都可以使用。

答案 1 :(得分:1)

您不能以dict.key的形式访问dict内的项目,您需要使用下标 - dict[key]进行访问。示例 -

arro[0]['url']

此错误与预先设置为字符串的u无关。