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查询Mysql时返回字典结构的代码
Jun 18 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
Pytorch Tensor基本数学运算详解
Dec 30 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
python基于opencv实现人脸识别
Jan 04 Python
Python进行区间取值案例讲解
Aug 02 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
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python实现堆排序的方法详解
2016/05/03 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python语言的优势是什么
2020/06/17 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
ktv总经理岗位职责
2014/02/17 职场文书
物理力学求职信
2014/02/18 职场文书
商业计划书格式、范文
2019/03/21 职场文书
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
nginx.conf配置文件结构小结
2022/04/08 Servers