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 相关文章推荐
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
python 调用win32pai 操作cmd的方法
May 28 Python
python交互式图形编程实例(一)
Nov 17 Python
python机器学习实战之K均值聚类
Dec 20 Python
python实现聚类算法原理
Feb 12 Python
python实现停车管理系统
Nov 30 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
Python try except异常捕获机制原理解析
Apr 18 Python
Python如何实现FTP功能
May 28 Python
Python实现EM算法实例代码
Oct 04 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 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
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
php实现短信发送代码
2015/07/05 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
js原型继承的两种方法对比介绍
2014/03/30 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
记录Django开发心得
2014/07/16 Python
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
python把一个字符串切开的实例方法
2020/09/27 Python
html5时钟实现代码
2010/10/22 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
新领导上任欢迎词
2014/01/13 职场文书
实习生求职自荐信
2014/02/07 职场文书
项目采购员岗位职责
2014/04/15 职场文书
班级文化标语
2014/06/23 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
对学校的意见和建议
2015/06/04 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书