我试图遍历unicode数据列表。 type(d['results'])
是list
。但是,organization_fields
实际上是dict
,但在查看负载时格式化为unicode。问题是,我如何访问organization_fields
?我尝试使用ast.literal_eval(k)
更改格式,但尝试这样做时遇到了一些错误。
另外,我收到回复r
并将其保存为d = r.json()
我有
for a in d['results']:
...: for k,v in a.iteritems():
...: print k
...: print type(k)
...: print('------break-----')
这是输出:
name
<type 'unicode'>
------break-----
shared_comments
<type 'unicode'>
------break-----
url
<type 'unicode'>
------break-----
organization_fields
<type 'unicode'>
------break-----
organization_fields
u'organization_fields': {
u'account_type': None,
u'id': u'some_id',
u'value': None
},
更新
当我尝试打印d['results'][0]
时,我会获得此处的项目列表。 url
,name
,除organization_fields
之外不存在a
。仅当我在上面的for
循环
string sid = "";
sid = Sesion["id"];
时才存在
答案 0 :(得分:1)
organization_fields不会存储为unicode。密钥是一个unicode字符串,但是密钥u&#39; organization_fields&#39;存储的值的类型。是使用unicode字符串键存储的更多值的字典。访问组织字段的值与访问任何其他字典的值相同。
如果您想访问for循环中的organization_fields:
for a in d['results']:
org_fields = a['organization_fields']
print org_fields
编辑:听起来并不像d [&#39;结果&#39;]中的每个元素都包含一个字典,其中包含由键组织字段存储的值。这应该可以解决问题。
for a in d['results']:
if 'organization_fields' in a:
org_fields = a['organization_fields']
print org_fields
如果您想查看d [&#39;结果&#39;]的哪个索引包含organization_fields的值,请执行以下操作:
for i, a in enumerate(d['results']):
if 'organization_fields' in a:
org_fields = a['organization_fields']
print org_fields
print 'index: %s' % i
然后,使用从那里打印的索引,您可以直接访问它:
org_fields = d['results'][index printed]['organization_fields']
答案 1 :(得分:0)
我不确定你理解你的问题......
但如果我这样做,你应该尝试类似的事情:
print d['result'][0]['organization_fields']['id']
应打印
some_id
- &GT;我不认为有任何“unicode数据”:有一些带有unicode字符串作为键的字典。