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实现简单购物商城
May 21 Python
Python标准库sched模块使用指南
Jul 06 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
Python iter()函数用法实例分析
Mar 17 Python
详谈python中冒号与逗号的区别
Apr 18 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
在pycharm中设置显示行数的方法
Jan 16 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
scrapy头部修改的方法详解
Dec 06 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
在Python中处理XML的教程
2015/04/29 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python读取文本中的坐标方法
2018/10/14 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
python常用函数与用法示例
2019/07/02 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
python 递归相关知识总结
2021/03/03 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
爸爸的花儿落了教学反思
2014/02/20 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
会议主持词开场白
2015/05/28 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python