这是我的json响应
{u'v'v'u'v''u'v'v''u'v''u'v''u'v''u'1607'},{'u'v''u'v''u'v''u'v''u'v''u'u'v''u'u'u'v''u'v''u'v''u'v''u'u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'u'v''u'v''u'v''u'v''u'v''u'v''u'u'v''u'u'v''u'v''u'u'v''u v':u'1599'},{u'v':u'kinghenryv'},{u'f':[{u'v':u'1'},{u'v':u'1600'},{u'v':u'merrywivesofwindsor'},{u'f':[{u'v':u'1'},{u'v':u'1602'},{u'v':u'u'v''u'v''u'v''u'v''u'v''u'u'v''u'u'v''u'u'v''u'u'v''u'u'u'v''u'v''u'u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v'''u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v''u'v'''u'u'v'''u'v''u'v''u'v'''u'2'},{u'v':u'kinghenryviii'},{u'f':[{u'v':u'2'},{u'v':u'1598'},{u'v':u'2kinghenryiv'}],u'jobReference'{u'jobReference':{u'jobId':u'jobId'u'jobId'u'jobId'u'jobId'u'jobId'u'jobId'u'jobId'u'jobB30FFB30FFB30FB23674F88AA5CB4949494949E358EC05'},u'jobComplete':True,u'totalRows':u'9''u'schema':{u'fields':['u'u'type''u'u'u'type':u'inte整数''u'name''u'name''u'sum'sum'u'sum'u'sum'u'sum'u'u'“类型”:u“字符串”,u“名称”:u“f0”,u'mode':u'NULLABLE'}]}
我使用下面的python代码循环
resp = []
for row in listReply['rows']:
for key,dict_list in row.iteritems():
count = dict_list[0]
year = dict_list[1]
corpus = dict_list[2]
resp.append({'count': count['v'],'year':year['v'],'corpus':corpus['v']})
如何检查此
listReply['rows']
是否存在,如JSON响应,如以下{u'totalRows':u'0',u'u'totalRows':u'totalRows':u'jobComplete''jobComplete':True,u'jobReference':{u'projectId':u'10394354349499624''u'jobId':u'jobId':u'job'u'job'u'job'id':u'job'EFC645852c345452c345452c34545bcff4ab3969772ff'd'},u'schema':{'u'u'fields':[{'u'u'u'type''u'type':u'u'u'类型''u'u'整型''u'整数''u名称:u'corpu-date',u'mode':u'NULLABLE'},{u'type':u'STRING',u'name':u'f0',u'mode':u'NULLABLE'}]}
最佳答案
for row in listReply.get('rows', []):
如果listpreply有一个键“rows”,它将遍历相应的值。如果密钥不存在,则返回默认值,在这种情况下应该是一个空列表,因此
for
将不会抱怨,因为它是可迭代的。另一种方法是在进入for循环之前测试密钥。
if 'rows' in listReply:
for row in listReply['rows']:
...