TypeError:字符串索引必须是整数 - Python

时间:2015-12-19 16:12:51

标签: python json dictionary

我发现了“TypError”,我不知道如何解决它。请帮忙。如果可能的话,我真的很感激。

我的代码:

import json

input = '''{
  "text":"Sample data",
  "subjects":[
    {
      "id":"A",
      "quant":10
    },
    {
      "id":"B",
      "quant":9
    },
    {
      "id":"C",
      "quant":8
    },
    {
      "id":"D",
      "quant":7
    },
    {
      "id":"E",
      "quant":6
    }]}
'''

info = json.loads(input)

count = 0
total = 0
for item in info:
    value = item["subjects"][0]["quant"]
    value = int(value)
    total += value
    count += count

print 'Count: ', count    
print 'Sum: ', total

错误:

  

出口; {u'text':你的数据',你的主题':[{u'quant':10,u'id':   u'A'},{u'quant':9,u'id':u'B'},{u'quant':8,u'id':u'C'},   {u'quant':7,u'id':u'D'},{u'quant':6,u'id':u'E'}}}追溯   (最近一次调用最后一次):文件   “/Users/macme/Documents/Python/test_Json.py”   第61行,在       value = item [“subjects”] [0] [“quant”] TypeError:字符串索引必须是整数logout保存会话......复制共享历史...   ...保存历史...截断历史文件......已完成。

     

[已完成处理]

2 个答案:

答案 0 :(得分:4)

info是一个字典,但你像列表一样迭代它。我想你想迭代info['subjects']

for item in info['subjects']:
  value = int(item['quant'])

答案 1 :(得分:1)

您的for循环无法正常工作。

for item in info遍历词典的键,即“text”和“subject”。然后尝试使用另一个字符串对这些字符串进行索引,这个字符串必然会失败。