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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
Python3 socket同步通信简单示例
Jun 07 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
Python如何把十进制数转换成ip地址
May 25 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
python绘制雷达图实例讲解
Jan 03 Python
pytorch中[..., 0]的用法说明
May 20 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把session写入数据库示例
2014/02/26 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
php中fsockopen用法实例
2015/01/05 PHP
php简单统计在线人数的方法
2016/05/10 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
浅谈Fetch 数据交互方式
2018/12/20 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
详解JavaScript 事件流
2020/09/02 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
解析python的局部变量和全局变量
2019/08/15 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
python 用struct模块解决黏包问题
2020/11/07 Python
SQL面试题
2013/12/09 面试题
大学毕业生求职自荐信
2014/02/20 职场文书
岗位职责风险点
2014/03/12 职场文书
高一学生期末评语
2014/04/25 职场文书
企业党员一句话承诺
2014/05/30 职场文书
农村党员对照检查材料
2014/09/24 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL