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通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
python中的列表推导浅析
Apr 26 Python
Python正则表达式的使用范例详解
Aug 08 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
通过python检测字符串的字母
Feb 18 Python
AUC计算方法与Python实现代码
Feb 28 Python
利用python控制Autocad:pyautocad方式
Jun 01 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的error_reporting错误级别变量对照表
2014/07/08 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
[JS]点出统计器
2020/10/11 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
uni app仿微信顶部导航条功能
2019/09/17 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python实现时间序列可视化的方法
2019/08/06 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
大一自我鉴定范文
2013/12/27 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
工作调动申请报告
2015/05/18 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书