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 相关文章推荐
SVM基本概念及Python实现代码
Dec 27 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
python中的print()输出
Apr 12 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 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.ini中date.timezone设置分析
2011/07/29 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php Session存储到Redis的方法
2013/11/04 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
this和执行上下文实现代码
2010/07/01 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
浅谈react性能优化的方法
2018/09/05 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
Python转码问题的解决方法
2008/10/07 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
自我评价范文分享
2014/01/04 职场文书
中班开学寄语
2014/04/04 职场文书
雷人标语集锦
2014/06/19 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
小学生读书笔记范文
2015/06/30 职场文书
开学第一周值周总结
2015/07/16 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
七年级作文之游记
2019/12/11 职场文书