python遇坑记录-json.loads() :JSONDecodeError: Invalid \escape

环境:python3.6

json文件:

{
   "src_dir"            :   "C:\\Users\\admin\\Desktop\\99\\apkobb",
   "bucket"             :   "tocggspace",
   "key_prefix"         : "ggspace/self/"
}

py文件:

import sys, json

configfile = sys.argv[1]

config = json.loads(configfile)

执行:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
文件中的\\无法decode,思路先转成其他的字符,decode之后再转回来

import sys, json

configfile = sys.argv[1]

f = open(configfile, ‘r‘)
configstr = f.read().replace(‘\\‘, ‘\\\\‘)
configtmp = json.loads(configstr)
config = {k: v.replace(‘\\\\‘, ‘\\‘) for k, v in configtmp.items()}
print(config)

数据结果:

{‘src_dir‘: ‘C:\\Users\\admin\\Desktop\\99\\apkobb‘, ‘bucket‘: ‘tocggspace‘, ‘key_prefix‘: ‘ggspace/self/‘}

问题解决

原文地址:https://www.cnblogs.com/leescre/p/9179249.html

时间: 2024-08-29 10:00:21

python遇坑记录-json.loads() :JSONDecodeError: Invalid \escape的相关文章

cocos2d-x v2.2 IOS工程支持64-bit 遇坑记录

修改缘由 由于 iPhone 5S的A7 CPU   iPhone 6(A8 CPU)都已经支持64-bit ARM 架构,据说64位处理器跑64代码会提高处理能力?因此二月一新提交appstore应用必须支持64位并且六月份更新应用也必须支持. 支持64bit 关于Xcode “Build Setting” 设置 1. Xcode “Build Setting”中的Architectures参数必须设置Standard architectures (armv7,arm64). 2. Xcode

python踩坑记录

1.代码如下:问题,运行login.py,输出两次func函数 login.py from decrator import authicate def checkuser_logged_in(re): if re == "1": return True elif re == "2": return False @authicate def post_comment(res): return "评论成功+" + res result = post_

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:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes问题解决

有如下一个文件,内容如下 { "test1": "/root/test/test1.template", "test2": "/root/test/test2.template", "test3": "/root/test/test3.template", "test4": "/root/test/test4.template", "te

python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分

一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串) (2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典) 2.json.dump()和json.load()主要用来读写json文件函数 二.代

python基础:json.loads(str)出现错误总结

1 >>> import json 2 >>> test="{'data':'123'}" 3 >>> result=json.loads(test) 4 Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> 6 File "d:\Anaconda3\lib\json\__init__.p

python json (loads(),load(),jump(),jumps())

# loads() str to json data# jumps() json to str# jump() json to filedef ladstest(): data = '{"name": "July", "salary": 999999, "title": "CEO", "manager": null}' json_data=json.loads(data) print(j

python json.load和json.loads的区别

load和loads都是实现"反序列化",区别在于(以Python为例): loads针对内存对象,即将Python内置数据序列化为字串 如使用json.dumps序列化的对象d_json=json.dumps({'a':1, 'b':2}),在这里d_json是一个字串'{"b": 2, "a": 1}' d=json.loads(d_json)  #{ b": 2, "a": 1},使用load重新反序列化为di

python中json.load()、json.loads()、json.dump()、json.dumps()的区别

json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将json格式字符串写到文件中 1.json.load() with open('text.json','r',encoding='utf-8') as f : print(json.load(f)) { "name": "anthony", "sex"