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构造自定义方法来美化字典结构输出的示例
Jun 16 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
pytorch获取vgg16-feature层输出的例子
Aug 20 Python
利用Python校准本地时间的方法教程
Oct 31 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
Python生成随机验证码代码实例解析
Jun 09 Python
python为什么要安装到c盘
Jul 20 Python
python 写一个性能测试工具(一)
Oct 24 Python
python中翻译功能translate模块实现方法
Dec 17 Python
Python之qq自动发消息的示例代码
Feb 18 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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程序员必须清楚的问题汇总
2014/12/18 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
Bootstrap基础学习
2015/06/16 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
js实现图片轮播效果
2015/12/19 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
简单的js计算器实现
2016/10/26 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
详解Python命令行解析工具Argparse
2016/04/20 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
美德少年主要事迹材料
2015/11/04 职场文书
python turtle绘图
2022/05/04 Python
解决 redis 无法远程连接
2022/05/15 Redis
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL