python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决

在学习python语言中用json库解析网络数据时,我遇到了两个编译错误:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:和json.decoder.JSONDecodeError: Expecting value:。费了一些时间才找到原因,在此记录总结,希望能对学习python的同学有所帮助。

我运行的程序初始如下:

import json
data='''
{
'name' : 'A',
'phone': { 'type' : 'intl', 'number' : +1 23456 },
'email' : {'hide' : 'yes'}
}'''
info=json.loads(data)
print("Name:",info["name"])
print("EmailAttri:",info["email"]["hide"])

运行后报错,显示错误为json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:,原来数据格式里string类型的数据要用双引号'' '',而不能用单引号' '。

将里面的单引号一一改过来之后,编译器仍然报错:json.decoder.JSONDecodeError: Expecting value:。我以为是代码格式(缩进)的问题,反复修改后还是报错,这让我百思不得其解,在网上搜索了这一错误的解决方案,也没有找到合适的答案。最后,与老师的源代码逐一仔细比对,发现问题竟然出在"number"这个元素这里,我当时把它的值当作数字,其实在这里+1 23456是string类型,因此需要加上双引号。修改后程序如下,正确运行。

import json
data='''
{
"name" : "A",
"phone": { "type" : "intl", "number" : "+1 23456" },
"email" : {"hide" : "yes"}
}'''
info=json.loads(data)
print("Name:",info["name"])
print("EmailAttri:",info["email"]["hide"])

这个问题还有另一种解决方式,就是将+1 23456改写成123456,int类型,这样就不需要加双引号。
 我在网上搜索该问题时,发现有很多人也遇到了json.decoder.JSONDecodeError: Expecting value:这一错误,从我解决的过程中,我认为原因主要是数据的格式不正确。因此,如果是从网上爬取的数据,需要先检查一下数据格式设置是否符合json的要求,这样程序编译才能顺利通过。

更多趣事,python知识,可以关注小编的微信公众号【码农那点事儿】。

总结

以上所述是小编给大家介绍的python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • Python3中的json模块使用详解

    1. 概述 JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能. Python中一种非常常用的基本数据结构就是字典(Dictionary). 它的典型结构如下: d = { 'a': 123, 'b': { 'x': ['A', 'B', 'C'] } } 而JSON的结构如下: { "a": 123, "b": { "x": [&quo

  • Python处理JSON时的值报错及编码报错的两则解决实录

    1.ValueError: Invalid control character at: line 1 column 8363 (char 8362) 使用json.loads(json_data)时,出现: ValueError: Invalid control character at: line 1 column 8363 (char 8362) 出现错误的原因是字符串中包含了回车符(\r)或者换行符(\n) 解决方法: (1)对这些字符转义: json_data = json_data.r

  • 利用python将json数据转换为csv格式的方法

    假设.json文件中存储的数据为: {"type": "Point", "link": "http://www.dianping.com/newhotel/22416995", "coordinates": [116.37256372996957, 40.39798447055443], "category": "经济型", "name": &qu

  • python 对象和json互相转换方法

    一.python对json的支持 从python2.6开始,python标准库中添加了对json的支持,操作json时,只需要import json即可. 二.python对象转换成json字符串 在把python对象转换成json字符串时,只需要如下知识即可: 1.python对象到json字符串的转换规则: Python JSON dict object list, tuple array str, unicode string int, long, float number True tr

  • Python发送http请求解析返回json的实例

    python发起http请求,并解析返回的json字符串的小demo,方便以后用到. #! /usr/bin/env python # -*- coding:gbk -*- import os import sys import json import urllib import urllib2 if __name__ == "__main__": query_file = sys.argv[1] query_index = 0 with open(query_file, 'r') a

  • Python3实现将本地JSON大数据文件写入MySQL数据库的方法

    本文实例讲述了Python3实现将本地JSON大数据文件写入MySQL数据库的方法.分享给大家供大家参考,具体如下: 最近导师给了一个yelp上的评论数据,数据量达到3.55个G,如果进行分析时直接使用本地文件,选择python来分析,那么效率是非常低的:另一方面使用SQL来储存文本文件最为安全,之前使用CSV,txt存储的文本文件最后莫名其妙地出现一些奇怪字符,导致读取数据分割时出现错乱.下面给出一个简单的代码,将本地JSON文件内容存入数据库. 说明:python版本为3.5,使用第三方库为

  • python如何读写json数据

    本文实例为大家分享了python读写json数据的具体代码,供大家参考,具体内容如下 案例: 在web应用中常常用到json数据进行传输数据,本质上是字典类型数据转换成字符串,通过字符串进行网页传输,然后把接收到的字符串转换成字典类似数据 需求:实现字典转换成字符串,字符串转换成字典数据类型,写入文件 如何做? 1.明确dumps和dump的区别,dump的接口是文件,直接写入文件,dumps把对应的数据类型转换成字符串,loads 和dumps相反,load直接从文件中读取文件并把数据转换成对

  • Python实现的读写json文件功能示例

    本文实例讲述了Python实现的读写json文件功能.分享给大家供大家参考,具体如下: 相比java,python对json文件的处理就简单很多.java操作json文件的话需要引用jar包及相关依赖包,想用java操作json的同学可以去百度,这里就不赘述了. 首先说读json文件 在进行json操作之前,首先要了解json的格式,分辨json文件. json文件格式一般有两种: 第一种:每行一个json类似于以下这种形式: ["name":"Tony",&quo

  • python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决

    在学习python语言中用json库解析网络数据时,我遇到了两个编译错误:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:和json.decoder.JSONDecodeError: Expecting value:.费了一些时间才找到原因,在此记录总结,希望能对学习python的同学有所帮助. 我运行的程序初始如下: import json data=''' { 'name' : '

  • 解决Python中报错TypeError: must be str, not bytes问题

    如下所示: #!/usr/bin/python import pickle shoplist=['apple','mango','carrot'] f = open('c:\poem.txt','w') pickle.dump(shoplist,f) f.close() del shoplist f = open('c:\poem.txt','r') storedlist = pickle.load(f) print(storedlist) 执行上述程序时候报错: TypeError: must

  • Python报错:PermissionError: [Errno 13] Permission denied的解决办法

    问题描述: 我一直用python处理气象数据,之前写过一个处理气象数据的程序,一直都可以用的,可是昨天我再想处理数据的时候提示我如下错误 Traceback (most recent call last): ...中间忽略 File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\xarray\backends\file_manager.py", line 205,

  • Python报错SyntaxError:unexpected EOF while parsing的解决办法

    目录 报错现象 分析解决 补充:一些python最重要的内建异常类名 总结 报错现象 File "<string>", line 1SyntaxError: unexpected EOF while parsing 提示EOF(END OF FILE),即预期外的文件截止符.这个报错可能问题有: 1)代码中()未配对 2)读取的string文件内容不符合函数使用规范 分析解决 小规模代码中,可以利用二分法快速定位,不断切分代码模块,打印或查看关键变量是否符合预期,从而找到出

  • Python中使用json.load()和json.loads()加载json数据的方法实例

    目录 前言 预备知识: 使用方法 总结 前言 最近在python里面用json读取json文件,可是老是不成功,特此记录一下. 预备知识: def load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw): """Deserialize ``fp`` (a ``.read()``-suppor

  • 关于python处理大型json文件的方法

    如图所示,要处理的数据是一个json数组,而且非常大 下图为电脑配置,使用 json.load() 方法加载上述json文件电脑直接卡死 解决思路: 先用python进行预处理,即一整个json数据加载慢,那就分开加载,每次加载一个json对象,然后使用 json.dumps()方法 存储到txt中,方便读取.当然也可以存储到内存中,根据情况而定. 算法思想:因为 json 是一种结构化的数据,所以 {} 是成对存在的.因为使用逐行读取的方法读入json文件,所以根据 {} 的数量来判断是否读取

  • python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法

    发现问题 写python的时候出现了这个错,然后网上的教程的解决方案几乎都是--"重新定义下这个变量",看的我一脸懵逼 后来发现原来是我把return None的方法赋给了变量,之后操作变量导致的,直接上代码 for i in range(2000): read_lines = random.shuffle(read_lines) # 问题出在这里了 print(read_lines) 咋一看是没啥问题,但是一运行就报错 >>TypeError: 'NoneType' ob

  • Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)

    前言 在Python中提供了json包来方便快捷的解析json字串的转换过程,但是碰到了一个比较奇怪的问题,就是不太正确的json串如何来解析? 1. 问题的提出 今天在处理一个http请求的响应json之时,基于python进行解析,碰到了如下错误: Traceback (most recent call last): File "<ipython-input-16-bff463ed9408>", line 1, in <module> json.loads(

  • 详解python中的json的基本使用方法

    在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口. #!/usr/bin/env python #-*- coding:utf-8 -*- import json print json.load(open('kel.txt')) #deserialize string or unicode to python object j = json.loads(open('kel.txt

  • python中解析json格式文件的方法示例

    前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 本文主要介

随机推荐