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 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
python3读取autocad图形文件.py实例
Jun 05 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
Python json解析库jsonpath原理及使用示例
Nov 25 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-MySQL教程归纳总结
2008/06/07 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python原始字符串(raw strings)用法实例
2014/10/13 Python
python实现telnet客户端的方法
2015/04/15 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
医学生求职自荐信
2013/10/25 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
英语分层教学实施方案
2014/06/15 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
费用申请报告范文
2015/05/15 职场文书
2015年党小组工作总结
2015/05/26 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫