解决TypeError: string indices must be integers, not str

2023-10-31

遇到问题

ExtendValue =  {
			"area": "1",
            "info": "{\"year\": 2014, \"a\": 12, \"b\": 3, \"c\":5}",
            "trip_country": "CN"
		}

在按照字典访问的时候,报错。TypeError: string indices must be integers, not str,意思是索引必须是int型不能是字符型。

错误原因

(出这种错误有多种可能,我只记录我遇到的)

经查找发现,是json格式导致的错误,info的value是json数据,python无法直接识别。

解决办法

原来字典存储的对象是json,因此需要把json反解码后才可以读取。

要json.loads(),才能把json格式转为python识别的格式。

加上一行代码:

ExtendValue["info"]=json.loads(ExtendValue["info"])

拓展

Python json 模块dumps、dump、loads、load的使用
json.dumps将python对象格式化成json字符(将dict转化成str)
json.loads将json字符串解码成python对象(将str转化成dict)
json_str = json.dumps(data)  # 编码
data = json.loads(json_str)  # 解码
json.dump主要用来将python对象写入json文件
f = open('demo.json','w',encoding='utf-8')
json.dump(decode_json,f,ensure_ascii=False)
f.close()
json.load加载json格式文件,返回python对象
f = open('demo.json','r',encoding='utf-8')
data = json.load(f)
print(data,type(data))
f.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决TypeError: string indices must be integers, not str 的相关文章

随机推荐

  • 栅栏密码(Fence)——python解密

    简介 所谓栅栏密码 就是把要加密的明文分成N个一组 然后把每组的第1个字连起来 形成一段无规律的话 不过栅栏密码本身有一个潜规则 就是组成栅栏的字母一般不会太多 一般不超过30个 也就是一 两句话 实现 一般比较常见的是2栏的栅栏密码 比如
  • 算法训练营第三十九天(8.30)

    Leecode 123 买卖股票的最佳时机 III 123 买卖股票的最佳时机III 123 买卖股票的最佳时机III 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 股票问题 class Solution p
  • 前端页面边距设置

    内边距 padding 边框到内容区的距离 padding top 上内边距 padding right 右内边距 padding bottom 下内边距 padding left 左内边距 也可以使用padding设置四个方向的值 pad
  • 现阶段游戏类型

    了解游戏类型 每一个游戏类型下所诞生的游戏产品侧重点略有不同 了解游戏类型并找到属于自己的产品定位 可以在后面的技术定位和实际开发时不至于走许多弯路 更重要的是 当所有参与开发的人员对产品的主要方向已经有了明确的概念时 产品所针对的用户群体
  • CentOS 7.2下Filebeat+Kafka+ELK生产部署(安全加固)

    01架构说明 在需要采集日志的服务器上部署Filebeat服务 它将采集到的日志数据推送到Kafka集群 Logstash服务通过input插件读取Kafka集群对应主题的数据 期间可以使用filter插 数据做自定义过滤解析处理 然后通过
  • Linux基础:如何切换终端

    1 在linux中可以使用命令来切换终端 终端中tty1为图形界面 剩余为命令行界面 2 切换终端的命令为 sudo chvt 2 在终端2中登录用户xu 此时使用who命令或者w命令查看当前系统用户 此时可以看到 终端1图形界面登录的是r
  • 区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名

    前往老猿Python博文目录 在Hyperledger Fabric区块链中 有背书节点进行背书 Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易 Hyperledger Fabric在区块链交易方面采取了一个新
  • iOS进阶面试题----经典10道

    所有的群都已到人数上限 本着 与时俱进 精神 建了个 iOS面试 公众号 大家扫码关注后 可直接发消息给我 iOS面试相关的问题我会尽量一一回复 OneV s Den在博客里出了10道iOS面试题 用他的话是 列出了十个应聘Leader级别
  • pytorch中mm()函数的用法

    x x mm self w x与w相乘 注 x必须是tensor 才可以应用该方法 参考链接 https blog csdn net genous110 article details 87801605
  • Web应用防火墙--规则防护

    一 什么是Web应用防火墙 Web应用防火墙对网站 APP的业务流量安全及合规性保护 对业务流量的识别恶意特征提取 分析识别出恶意流量并进行处理 将正常安全的流量回源到业务服务器 保护网站核心业务和数据安全 京东云Web应用防火墙的产品架构
  • 深度学习C语言——结构体

    不起眼 前言 结构体 结构体的声明 结构体变量的定义和初始化 结构体大小计算 枚举 联合 总结 前言 自定义类型连续剧 结构体 结构是一些值的集合 这些值称为成员变量 结构的每个成员是不同类型的变量 为什么要有结构体 比如说 描述一个学生时
  • Learnning Dlib(五) Dlib face landmark detection

    官方例子 人脸模型68点绘制 非常非常慢 需要优化 下载模型 下载后放入lib 目录下 代码如下 interface ViewController shape predictor sp NSString imagePath void vie
  • Python Web Flask源码解读(三)——模板渲染过程

    关于我 编程界的一名小小程序猿 目前在一个创业团队任team lead 技术栈涉及Android Python Java和Go 这个也是我们团队的主要技术栈 Github github com hylinux1024 微信公众号 angry
  • 【数据分析】数据分析方法(二):逻辑树分析方法

    数据分析方法 二 逻辑树分析方法 逻辑树分析方法是把复杂问题拆解成若干个简单的子问题 然后像树枝那样逐步展开 1 工作计划分解 不管是在实际生活中还是工作中 我们经常会使用逻辑树分析方法来分析问题 比如 现在你想给自己做一个年度计划 但是要
  • 基石

    本文是Checkpoint系列非源码最后一篇文章 必会 关于SparkStreaming checkpoint那些事儿 flink超越Spark的Checkpoint机制 前面两篇 一篇是spark的driver的Checkpoint细节及
  • 工作中git遇到的问题

    一开始我提交代码总是提交到另一个同事的git里 代码 Windows PowerShell 版权所有 C Microsoft Corporation 保留所有权利 尝试新的跨平台 PowerShell https aka ms pscore
  • 使用springboot搭建swing桌面程序(二)

    概述 桌面应用是个人兴趣 但不是很擅长 这里接着上一篇的内容 上一篇主要是springboot jpa swing集成到一起 启动是否正常 这一篇主要是应用的具体实现 页面编写 基本的todo的添加 完成 展示 页面的布局 设计自己的组件
  • Element UI Table排序顺序错乱处理

    1 a b gt return a total money b total money a b gt 0表示a大于b a b 0表示a等于b a b lt 0表示a小于b
  • java面向对象简述

    1 面向对象编程的基本特征 java面向对象编程的三个基本特征是封装 继承和多态 这三个特征是面向对象编程更加灵活 高效 2 类和对象 在java中 所有的代码都必须放在类中 类是种模板 它确定了对象的属性和行为 对象是类的实例化 可以调用
  • 解决TypeError: string indices must be integers, not str

    遇到问题 ExtendValue area 1 info year 2014 a 12 b 3 c 5 trip country CN 在按照字典访问的时候 报错 TypeError string indices must be integ