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实现识别相似图片小结
Feb 22 Python
Python中property函数用法实例分析
Jun 04 Python
python处理csv中的空值方法
Jun 22 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
python自定义时钟类、定时任务类
Feb 22 Python
python滑块验证码的破解实现
Nov 10 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
Python使用tkinter实现小时钟效果
Feb 22 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
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript 获取表单file全路径
2009/12/31 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python解析xml模块封装代码
2014/02/07 Python
使用python实现strcmp函数功能示例
2014/03/25 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
Python的Django框架中if标签的相关使用
2015/07/15 Python
python遍历目录的方法小结
2016/04/28 Python
Python 中Pickle库的使用详解
2018/02/24 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
python类共享变量操作
2020/09/03 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
财产公证书样本
2014/04/04 职场文书
留学推荐信范文
2014/05/10 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书