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

今天在使用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>", line1,in <module>
  File "/usr/lib/python2.7/json/__init__.py", line326,in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line366,in decode
    obj, end= self.raw_decode(s, idx=_w(s,0).end())
TypeError: expected stringor 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,问题解决

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容