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备份文件的脚本
Aug 11 Python
跟老齐学Python之用while来循环
Oct 02 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
python实现控制COM口的示例
Jul 03 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
python操作cfg配置文件方式
Dec 22 Python
Python编写万花尺图案实例
Jan 03 Python
pandas统计重复值次数的方法实现
Feb 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
DSP接收机前端设想
2021/03/02 无线电
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
javascript实现的listview效果
2007/04/28 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
python之文件读取一行一行的方法
2018/07/12 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
机械电子工程专业推荐信范文
2013/11/20 职场文书
应用艺术毕业生的自我评价
2013/12/04 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
素质教育培训心得体会
2016/01/19 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL