python中json对象转换出错解决方法

本文解决了Python中JSON转换的问题,即如何正确处理单引号和双引号以避免TypeError错误,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在使用python中的json转换碰到一个问题:

接收一个post的json字符串:

s={"username":"admin","password":"password","tenantid":""}

使用python自带的json库

1
2
3
4
5
6
7
8
9
10
import json
>>> a=json.loads(s)
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
  File "/usr/lib/python2.7/json/__init__.py", line 326in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
>>>


出错!

百思不得其解。经过调试,最终发现,python中默认使用单引号表示字符串"'"

所以当,用字符串符值以后,python会把双引号转换为单引号

>>> s={"username":"admin","password":"password","tenantid":""}

>>> print s

{'username': 'admin', 'password': 'password', 'tenantid': ''}

而json是不支持单引号的。

可以用下面的方法转换

json_string=json.dumps(s)

python_obj=json.loads(json_string)


ok,问题解决

转载于:https://www.cnblogs.com/TTonly/p/10349959.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值