类型错误:字符串索引必须是整数,而不是带有 JSON 解析的 str

用户9300944

尝试解析 JSON 文件时出现上述错误。

代码:

import json

data = open('output.json').read()

for host in data['ASSET_DATA_REPORT']['HOST_LIST']['HOST']:
        print(host['IMAGE_ID'])

追溯:

Traceback (most recent call last):
  File "json_format.py", line 11, in <module>
    for host in data['ASSET_DATA_REPORT']['HOST_LIST']['HOST']:
TypeError: string indices must be integers, not str

JSON:

{
"ASSET_DATA_REPORT": {
  "HOST_LIST": {
            "HOST": [
                {
                    "IP": {
                        "network_id": "0"
                    }, 
                    "TRACKING_METHOD": "EC2", 
                    "ASSET_TAGS": {
                        "ASSET_TAG": [
                            "EC2 Running", 
                            "IF - Database - MySQL", 
                        ]
                    }, 
                    "DNS": "i-xxxxxxx", 
                    "EC2_INSTANCE_ID": "i-xxxxxx", 
                    "EC2_INFO": {
                        "PUBLIC_DNS_NAME": "ec2-xxxxxxxx.amazonaws.com", 
                        "IMAGE_ID": "ami-xxxxxx", 
                        "VPC_ID": "vpc-xxxxxx", 
                        "INSTANCE_STATE": "RUNNING", 
                        "PRIVATE_DNS_NAME": "ip-xxxx.ec2.internal", 
                        "INSTANCE_TYPE": "m3.xlarge"
                 }
             }
          ]
       }
    }
}

host由于某种原因,它似乎是一个字符串,我不知道如何克服这个错误。

凯文·J·蔡斯

你有几个问题,一些在你的代码中,一些在你的 JSON 中。

首先,JSON --- 在最后一个列表条目后有一个额外的逗号:

"ASSET_TAG": [
    "EC2 Running",
    "IF - Database - MySQL",
]

您的代码有两个问题。首先是你永远不会将文件的内容转换为 JSON ---它仍然是一个字符串:

data = open('output.json').read()

你想要像roganjosh 已经描述过的东西

with open('output.json') as f:
    data = json.load(f)

您的后续问题是 JSON 的结构与您的代码不匹配。'IMAGE_ID'不是存储在'HOST'列表中的(未命名)字典中的键——它是'EC2_INFO'字典的键,它包含在那个无名字典中。这:

print(host['IMAGE_ID'])

应该是这样的:

print(host['EC2_INFO']['IMAGE_ID'])

输出是一个字符串:

ami-xxxxxx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类型错误:列表索引必须是整数或切片,而不是解析 json 请求时的 str

来自分类Dev

TypeError:解析json时,列表索引必须是整数,而不是str

来自分类Dev

python pandas - 解析 JSON 时出现类型错误:字符串索引必须是整数

来自分类Dev

Robot Framework - 类型错误:解析 Json 时字符串索引必须是整数

来自分类Dev

使用Python解析JSON:TypeError:列表索引必须是整数,而不是str

来自分类Dev

TypeError:列表索引必须是整数或切片,而不是解析JSON时的str

来自分类Dev

使用 json 数据解析错误:字符串索引必须是整数

来自分类Dev

类型错误:列表索引必须是整数或切片,而不是 str - JSON,Python 错误

来自分类Dev

类型错误:字符串索引必须是带 JSON 的整数

来自分类Dev

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

来自分类Dev

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

来自分类Dev

解析JSON时,字符串索引必须为整数-python

来自分类Dev

字符串索引必须是整数,而不是str字典

来自分类Dev

zeromq:TypeError:字符串索引必须是整数,而不是str

来自分类Dev

Scrapy:TypeError:字符串索引必须是整数,而不是 str?

来自分类Dev

Python csv 写入错误 - 字符串索引必须是整数,而不是 str

来自分类Dev

列表索引必须是整数或切片,而不是尝试从json文件提取数据时的str错误

来自分类Dev

类型错误:JSON 对象必须是 str,而不是“DetailedResponse”

来自分类Dev

尝试将 JSON 文件转换为 CSV 时,出现以下错误:类型错误:列表索引必须是整数或切片,而不是 str

来自分类Dev

类型错误:字符串索引必须是复杂的 json 数组中的整数

来自分类Dev

Python 2.7:类型错误:列表索引必须是整数,而不是 str

来自分类Dev

类型错误:列表索引必须是整数或切片,而不是 str '转换字符'

来自分类Dev

TypeError:字符串索引必须是整数,而不是str //使用dict

来自分类Dev

Python multiprocessing.Pool map()“ TypeError:字符串索引必须是整数,而不是str”

来自分类Dev

Python,MongoDB,Mongoengine-TypeError:字符串索引必须是整数,而不是str

来自分类Dev

熊猫pd.merge“ TypeError:字符串索引必须是整数,而不是str”

来自分类Dev

TypeError:字符串索引必须是整数,而不是str(烂番茄)

来自分类Dev

Ansible:VPC重新定义:TypeError:字符串索引必须是整数,而不是str

来自分类Dev

从MongoDB中读取“ GET”方法,TypeError:字符串索引必须是整数,而不是str

Related 相关文章

  1. 1

    类型错误:列表索引必须是整数或切片,而不是解析 json 请求时的 str

  2. 2

    TypeError:解析json时,列表索引必须是整数,而不是str

  3. 3

    python pandas - 解析 JSON 时出现类型错误:字符串索引必须是整数

  4. 4

    Robot Framework - 类型错误:解析 Json 时字符串索引必须是整数

  5. 5

    使用Python解析JSON:TypeError:列表索引必须是整数,而不是str

  6. 6

    TypeError:列表索引必须是整数或切片,而不是解析JSON时的str

  7. 7

    使用 json 数据解析错误:字符串索引必须是整数

  8. 8

    类型错误:列表索引必须是整数或切片,而不是 str - JSON,Python 错误

  9. 9

    类型错误:字符串索引必须是带 JSON 的整数

  10. 10

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

  11. 11

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

  12. 12

    解析JSON时,字符串索引必须为整数-python

  13. 13

    字符串索引必须是整数,而不是str字典

  14. 14

    zeromq:TypeError:字符串索引必须是整数,而不是str

  15. 15

    Scrapy:TypeError:字符串索引必须是整数,而不是 str?

  16. 16

    Python csv 写入错误 - 字符串索引必须是整数,而不是 str

  17. 17

    列表索引必须是整数或切片,而不是尝试从json文件提取数据时的str错误

  18. 18

    类型错误:JSON 对象必须是 str,而不是“DetailedResponse”

  19. 19

    尝试将 JSON 文件转换为 CSV 时,出现以下错误:类型错误:列表索引必须是整数或切片,而不是 str

  20. 20

    类型错误:字符串索引必须是复杂的 json 数组中的整数

  21. 21

    Python 2.7:类型错误:列表索引必须是整数,而不是 str

  22. 22

    类型错误:列表索引必须是整数或切片,而不是 str '转换字符'

  23. 23

    TypeError:字符串索引必须是整数,而不是str //使用dict

  24. 24

    Python multiprocessing.Pool map()“ TypeError:字符串索引必须是整数,而不是str”

  25. 25

    Python,MongoDB,Mongoengine-TypeError:字符串索引必须是整数,而不是str

  26. 26

    熊猫pd.merge“ TypeError:字符串索引必须是整数,而不是str”

  27. 27

    TypeError:字符串索引必须是整数,而不是str(烂番茄)

  28. 28

    Ansible:VPC重新定义:TypeError:字符串索引必须是整数,而不是str

  29. 29

    从MongoDB中读取“ GET”方法,TypeError:字符串索引必须是整数,而不是str

热门标签

归档