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

kkkkk 2018年12月17日 23:07 Python高级

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

接收一个post的json字符串:

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

使用python自带的json库

import json
>>> a=json.loads(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in 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,问题解决

文章评论(0)
  • avatar kkkkkk 2018年12月21日 11:31
    哈哈
    kkkkk
    2018年12月21日 11:16
    选词失当,譬喻不切 认识错误,不切题意。文辞生硬,未能达意。含义空虚,句亦欠顺。
    回复
  • avatar kkkkkk 2018年12月21日 11:31
    真是出口成章呀!
    kkkkklxinde
    2018年12月21日 11:17
    入情入理,甚见精纯。笔致轻松,理畅辞达豪放雄奇,不落俗套。面面俱到,论断正确。
    回复
  • avatar kkkkklxinde 2018年12月21日 11:17
    入情入理,甚见精纯。笔致轻松,理畅辞达豪放雄奇,不落俗套。面面俱到,论断正确。
    回复
  • avatar kkkkk 2018年12月21日 11:16
    选词失当,譬喻不切 认识错误,不切题意。文辞生硬,未能达意。含义空虚,句亦欠顺。
    回复