Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:TypeError:解析JSON时字符串索引必须是整数_Python_Python 2.7_Parsing - Fatal编程技术网

Python:TypeError:解析JSON时字符串索引必须是整数

Python:TypeError:解析JSON时字符串索引必须是整数,python,python-2.7,parsing,Python,Python 2.7,Parsing,我已经编写了一段代码来解析以下json内容,但我收到的错误消息是“TypeError:字符串索引必须是整数” 告诉我一种在计数中添加所有值的方法(Json内容)您需要在Json对象的“comments”项中迭代字典列表。我将使用您的数据的简短版本来说明 info = { 'comments':[ {'count': 100, 'name': 'Leven'}, {'count': 97, 'name': 'Mahdiya'}, {'coun

我已经编写了一段代码来解析以下json内容,但我收到的错误消息是“TypeError:字符串索引必须是整数”


告诉我一种在计数中添加所有值的方法(Json内容)

您需要在Json对象的
“comments”
项中迭代字典列表。我将使用您的数据的简短版本来说明

info = {
    'comments':[
        {'count': 100, 'name': 'Leven'},
        {'count': 97, 'name': 'Mahdiya'},
        {'count': 87, 'name': 'Ajayraj'},
        {'count': 86, 'name': 'Lillian'},
        {'count': 86, 'name': 'Aon'},
        {'count': 78, 'name': 'Ruaraidh'},
        {'count': 75, 'name': 'Gursees'},
        {'count': 74, 'name': 'Emmanuel'},
        {'count': 72, 'name': 'Christy'},
        {'count': 72, 'name': 'Annoushka'},
        {'count': 72, 'name': 'Inara'},
    ]
}

total = 0
for d in info['comments']:
    name, count = d['name'], d['count']
    total += count
    print name, count, total
print total
输出

Leven 100
Mahdiya 97 197
Ajayraj 87 284
莉莲86 370
怡安86 456
鲁阿莱德78 534
古尔西75 609
伊曼纽尔74683
克里斯蒂72755
安努什卡72 827
伊娜拉72 899
899

它要求一个整数,因为JSON数据是一个包含字典列表的字典。查看“值”(打印值)的格式。您将看到count是列表中的一个成员。要调用列表的特定成员,可以通过索引号(整数)而不是字符串来调用它。下面是json.loads()之后的数据结构示例:


您将看到count位于一个字典中,它是列表中的第一项。您需要访问该列表,然后访问该字典的count键。

看起来您没有解析jsonHow来添加该字典中的所有值count@Madhan你是说,
计数+=e
??顺便问一下,什么是
info
??请发布您的实际代码。当前代码没有显示解析JSON字符串数据的位置。大概,这就是
info
中的内容,但是如果我们必须猜测您的代码是什么,我们将无法帮助您。另外,发布错误消息的完整回溯(在代码块中保留格式);仅仅说“我收到了错误信息”是没有帮助的。谢谢,这样更好!
   {
  "comments":[
    {
      "name":"Leven",
      "count":100
    },
    {
      "name":"Mahdiya",
      "count":97
    },
    {
      "name":"Ajayraj",
      "count":87
    },
    {
      "name":"Lillian",
      "count":86
    },
    {
      "name":"Aon",
      "count":86
    },
    {
      "name":"Ruaraidh",
      "count":78
    },
    {
      "name":"Gursees",
      "count":75
    },
    {
      "name":"Emmanuel",
      "count":74
    },
    {
      "name":"Christy",
      "count":72
    },
    {
      "name":"Annoushka",
      "count":72
    },
    {
      "name":"Inara",
      "count":72
    },
    {
      "name":"Caite",
      "count":70
    },
    {
      "name":"Rosangel",
      "count":70
    },
    {
      "name":"Iana",
      "count":66
    },
    {
      "name":"Anise",
      "count":66
    },
    {
      "name":"Jaosha",
      "count":65
    },
    {
      "name":"Cadyn",
      "count":65
    },
    {
      "name":"Edward",
      "count":63
    },
    {
      "name":"Charlotte",
      "count":61
    },
    {
      "name":"Sammy",
      "count":60
    },
    {
      "name":"Zarran",
      "count":60
    },
    {
      "name":"Rowen",
      "count":59
    },
    {
      "name":"Stanislaw",
      "count":59
    },
    {
      "name":"Maighdlin",
      "count":57
    },
    {
      "name":"Connan",
      "count":56
    },
    {
      "name":"Warrick",
      "count":54
    },
    {
      "name":"Diya",
      "count":52
    },
    {
      "name":"Lawson",
      "count":52
    },
    {
      "name":"Wu",
      "count":51
    },
    {
      "name":"Irmak",
      "count":47
    },
    {
      "name":"Emilija",
      "count":47
    },
    {
      "name":"Kayda",
      "count":41
    },
    {
      "name":"Ellenor",
      "count":41
    },
    {
      "name":"Kyra",
      "count":41
    },
    {
      "name":"Nikita",
      "count":38
    },
    {
      "name":"Kaelah",
      "count":35
    },
    {
      "name":"Meko",
      "count":32
    },
    {
      "name":"Marissa",
      "count":31
    },
    {
      "name":"Ayat",
      "count":24
    },
    {
      "name":"Sali",
      "count":19
    },
    {
      "name":"Hashem",
      "count":19
    },
    {
      "name":"Tygan",
      "count":18
    },
    {
      "name":"Rioden",
      "count":17
    },
    {
      "name":"Cruiz",
      "count":16
    },
    {
      "name":"Caoilfinn",
      "count":13
    },
    {
      "name":"Ewen",
      "count":8
    },
    {
      "name":"Baighley",
      "count":7
    },
    {
      "name":"Ramone",
      "count":1
    },
    {
      "name":"Kyran",
      "count":1
    },
    {
      "name":"Noelani",
      "count":1
    }
  ]
}
info = {
    'comments':[
        {'count': 100, 'name': 'Leven'},
        {'count': 97, 'name': 'Mahdiya'},
        {'count': 87, 'name': 'Ajayraj'},
        {'count': 86, 'name': 'Lillian'},
        {'count': 86, 'name': 'Aon'},
        {'count': 78, 'name': 'Ruaraidh'},
        {'count': 75, 'name': 'Gursees'},
        {'count': 74, 'name': 'Emmanuel'},
        {'count': 72, 'name': 'Christy'},
        {'count': 72, 'name': 'Annoushka'},
        {'count': 72, 'name': 'Inara'},
    ]
}

total = 0
for d in info['comments']:
    name, count = d['name'], d['count']
    total += count
    print name, count, total
print total
{u'comments': [{u'count': 100, u'name': u'Leven'}, {u'count': 97, u'name': u'Mahdiya'}, {u'count': 87, u'name': u'Ajayraj'}, {u'count': 86, u'name': u'Lillian'}, {u'count': 86, u'name': u'Aon'}, {u'count': 78, u'name': u'Ruaraidh'}, {u'count': 75, u'name': u'Gursees'}, {u'count': 74, u'name': u'Emmanuel'}, {u'count': 72, u'name': u'Christy'}, {u'count': 72, u'name': u'Annoushka'}, {u'count': 72, u'name': u'Inara'}, {u'count': 70, u'name': u'Caite'}, {u'count': 70, u'name': u'Rosangel'}, {u'count': 66, u'name': u'Iana'}, {u'count': 66, u'name': u'Anise'}, {u'count': 65, u'name': u'Jaosha'}, {u'count': 65, u'name': u'Cadyn'}, {u'count': 63, u'name': u'Edward'}, {u'count': 61, u'name': u'Charlotte'}, {u'count': 60, u'name': u'Sammy'}, {u'count': 60, u'name': u'Zarran'}, {u'count': 59, u'name': u'Rowen'}, {u'count': 59, u'name': u'Stanislaw'}, {u'count': 57, u'name': u'Maighdlin'}, {u'count': 56, u'name': u'Connan'}, {u'count': 54, u'name': u'Warrick'}, {u'count': 52, u'name': u'Diya'}, {u'count': 52, u'name': u'Lawson'}, {u'count': 51, u'name': u'Wu'}, {u'count': 47, u'name': u'Irmak'}, {u'count': 47, u'name': u'Emilija'}, {u'count': 41, u'name': u'Kayda'}, {u'count': 41, u'name': u'Ellenor'}, {u'count': 41, u'name': u'Kyra'}, {u'count': 38, u'name': u'Nikita'}, {u'count': 35, u'name': u'Kaelah'}, {u'count': 32, u'name': u'Meko'}, {u'count': 31, u'name': u'Marissa'}, {u'count': 24, u'name': u'Ayat'}, {u'count': 19, u'name': u'Sali'}, {u'count': 19, u'name': u'Hashem'}, {u'count': 18, u'name': u'Tygan'}, {u'count': 17, u'name': u'Rioden'}, {u'count': 16, u'name': u'Cruiz'}, {u'count': 13, u'name': u'Caoilfinn'}, {u'count': 8, u'name': u'Ewen'}, {u'count': 7, u'name': u'Baighley'}, {u'count': 1, u'name': u'Ramone'}, {u'count': 1, u'name': u'Kyran'}, {u'count': 1, u'name': u'Noelani'}]}