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中用format函数格式化字符串的用法
Apr 08 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
Python小白垃圾回收机制入门
Jun 09 Python
Python无损压缩图片的示例代码
Aug 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缓存技术介绍
2006/11/25 PHP
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
判断网页编码的方法python版
2016/08/12 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
django 取消csrf限制的实例
2020/03/13 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
春节活动策划方案
2014/01/24 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
交通志愿者活动总结
2014/06/27 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
初三化学教学反思
2016/02/22 职场文书