今日、Python で JSON 変換を使用しているときに問題が発生しました:
投稿の 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、問題は解決しました