使用django-social-auth从Facebook获取用户数据,它将返回一个unicode字符串中的字典列表。例如,对于用户response.get(“教育”)将返回:如何解析由python的facebook api返回的字典字符串列表?
u"[{u'school': {u'id': u'12345', u'name': u'Joe Thiesman High'}, u'type': u'High School'}, {u'school': {u'id': u'23456', u'name': u'Joe Montana University'}, u'type': u'College'}]"
我想这从一个字符串转换到一个列表,我可以提取数据,但我在努力。建议类似的问题(String to Dictionary in Python)的答案用:
foo=json.loads(string)
但失败,因为它是一个嵌套类型的字典列表,1为每所学校,而不仅仅是一个字典,它似乎是越来越糊涂。错误即时得到的是:
ValueError: Extra Data: line 1 column 73 - line 1 column 144
本来,我得到一个ValueError:期待物业名称:1号线,2列,直到我用与string.replace()来交换“与”,反之亦然。这并摆脱错误的,但我这不是正确的解决方案的情况下提
它看起来像有一个逗号缺失'u'type'之前:u'College' – adamnfish 2011-06-03 17:05:46
最大的问题是,这不是有效的JSON。除了缺少逗号之外,包含的字符串需要双引号,而不是单引号。 @见也http://stackoverflow.com/questions/4162642/python-single-vs-double-quotes-in-json – cwallenpoole 2011-06-03 17:11:26
@adamnfish我手动在这里输入并错过了。固定 @cwallenpoole奇怪,这是从Facebook返回的方式,不知道为什么它不是有效的JSON。 – gatsby32 2011-06-03 19:22:26