下面是我正在处理的json文件的一小部分。
{
'kind': 'c',
'items': [
{
'kind': 'c',
'title': 'D',
'htmlTitle': 'P',
'link': 'h',
'pagemap': {
'hcard': [
{
'fn': 'A',
'title': 'S'
}
],
'person': [
{
'org': 't',
}
],
'cse_image': [
{
'src': 'h'
}
]
}
}
]
}
因为有些物品有人钥匙,而有些物品没有。因此,为了检查项目是否包含人员密钥,我使用下面的代码:
json = json.dumps(results)
for profile in range (0, 10):
if 'person' not in json['items'][profile]['pagemap']:
org="null"
else:
org= results['items'][profile]['pagemap']['person'][0]['org']
#results stores the json response.
但是在运行程序时会出现错误,说明" TypeError:字符串索引必须是整数"。
答案 0 :(得分:0)
你正在混合像json和结果这样令人困惑的变量名。因此,我已根据需要重命名以实现您实际想要的目标。
json文件是" test.json"在这个例子中,因为我不知道你的json文件名。
我离开了打印线,这样你就可以看到发生了什么。您可以在测试时将其删除。
with open('test.json') as r:
dic = json.load(r)
result = []
for profile in range(len(dic['items'])):
print('profile:', profile)
print('pagemap:', dic['items'][profile]['pagemap'])
if 'person' not in dic['items'][profile]['pagemap']:
org = "null"
else:
org = dic['items'][profile]['pagemap']['person'][0]['org']
print('org:', org)
result += [org]
print('result:', result)