python 中json庫的 對象轉換問題


今天在使用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)
 
PS: 自己搞錯了,見評論。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM