Python解析json时提示“string indices must be integers”问题解决方法


Posted in Python onJuly 31, 2019

本文实例讲述了Python解析json时提示“string indices must be integers"问题解决方法。分享给大家供大家参考,具体如下:

import json,但是出现了一个奇怪的问题:

string indices must be integers

这个错误告诉我,[ ]里面应该是数字而不是字符串,但是dict使用key访问也可以,这种错误感觉解析出来的结果像是一个list。

所以考虑是字符串解析的问题。打印解析的结果,是一长串的字符串,一堆的key挤在一起,value都缺失了。再打印原始的字符串,发现了一些细节,key并没有被双引号包围,类似于'{a:"abcde",b:"abcde"}'。

好吧,这是一个不符合json规范的字符串,要处理它,可以使用正则表达式转换成规范的key再解析或者使用其他功能更加强大的库——demjson。

pip install demjson,解决。

json的用法:

import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = json.dumps(data)
print json

结果为:

[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print text

结果为:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

demjson的用法:

import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print json

结果为:

[{"a":1,"b":2,"c":3,"d":4,"e":5}]

import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print text

结果为:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print json

结果为:

[{"a":1,"b":2,"c":3,"d":4,"e":5}]

import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print text

结果为:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
python timestamp和datetime之间转换详解
Dec 11 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
python调用外部程序的实操步骤
Mar 04 Python
Django 缓存配置Redis使用详解
Jul 23 Python
python制作英语翻译小工具代码实例
Sep 09 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
Python基于template实现字符串替换
Nov 27 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
Python Web程序搭建简单的Web服务器
Jul 31 #Python
python字典的常用方法总结
Jul 31 #Python
python Django的web开发实例(入门)
Jul 31 #Python
Flask框架模板继承实现方法分析
Jul 31 #Python
Flask框架模板渲染操作简单示例
Jul 31 #Python
opencv导入头文件时报错#include的解决方法
Jul 31 #Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 #Python
You might like
php增删改查示例自己写的demo
2013/09/04 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
使用numba对Python运算加速的方法
2018/10/15 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
PHP笔试题
2012/02/22 面试题
描述内存分配方式以及它们的区别
2016/10/15 面试题
酒店销售经理岗位职责
2014/01/31 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
检举信的写法
2019/04/10 职场文书
Redis实战高并发之扣减库存项目
2022/04/14 Redis
python游戏开发Pygame框架
2022/04/22 Python
Python实现对齐打印 format函数的用法
2022/04/28 Python