【问题标题】:Python 2.7: TypeError: list indices must be integers, not strPython 2.7:TypeError:列表索引必须是整数,而不是 str
【发布时间】:2018-02-26 19:56:30
【问题描述】:

我有一个结构如下的 JSON 文件:

{
 "some": "data",
 "some2": [
           {
            "some3": "data3",
            "some4": {
                      "some5": "data5",
                      "some6": {
                                "some7": "data7",
                                "some8": {
                                          "some9": "data9",
                                          "somedata": [0, 100, 200, 300, 400]}}}}]}

我使用 json.load() 对其进行了解析。顺其自然:

 parsedjson = json.load(myjsonfile)

当我尝试处理“一些数据”值时

 parsedjson['some2']['some4']['some6']['some8']['somedata']

Python 抛出异常“TypeError: list indices must be integers, not str

我真的不明白为什么会发生这种情况以及如何解决它。我检查了有关 stackoverflow 的其他几个问题,但没有运气。

【问题讨论】:

  • "some2" 有一个列表作为值
  • 我很好地格式化了你的 JSON,现在它应该跳出问题。

标签: python json python-2.7


【解决方案1】:

'some2' 具有列表作为值。您可以对其进行迭代或使用索引来访问该值。

前:

parsedjson  = {"some":"data","some2":[{"some3":"data3","some4":{"some5":"data5","some6":{
"some7":"data7","some8":{"some9":"data9","somedata":[0,100,200,300,400]}}}}]}
print parsedjson['some2'][0]['some4']['some6']['some8']['somedata']  #Using index 0

输出:

[0, 100, 200, 300, 400]

【讨论】:

  • 不客气 :)
猜你喜欢
  • 2018-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 2014-09-02
  • 1970-01-01
相关资源
最近更新 更多