为何处理类JSON输入时出现‘TypeError: string indices must be integers’错误?
问题分析与解决
核心问题拆解
- 输入格式不符合JSON规范:你给出的
{'server': 'apple'}是Python字典的语法,不是标准JSON——JSON强制要求所有键名和字符串值必须使用双引号,正确的JSON格式应为{"server": "apple"}。 - 报错的直接原因:你的代码里把这段内容当成了字典,用
['server']的方式去访问,但实际上它是字符串类型(比如你可能用引号把这段内容包裹后赋值给了变量)。字符串只能通过整数下标(如str[0])访问,用字符串作为下标自然会触发TypeError: string indices must be integers。
解决办法
根据你的使用场景选择对应方案:
- 直接用Python字典:如果是在Python代码里定义数据,直接去掉外层引号,把它作为字典对象使用:
data = {'server': 'apple'} print(data['server']) # 正常输出apple
- 解析JSON字符串:如果这是从外部获取的JSON格式字符串,先确保它是标准双引号格式,再用
json模块解析成字典:
import json # 确保是标准双引号格式的JSON字符串 json_str = '{"server": "apple"}' data = json.loads(json_str) print(data['server'])
内容的提问来源于stack exchange,提问作者cloudgeek
相关产品推荐
相关产品推荐

