>백엔드 개발 >파이썬 튜토리얼 >Python의 json 구문 분석 기능은 작은따옴표 문자열을 지원하지 않습니다.

Python의 json 구문 분석 기능은 작은따옴표 문자열을 지원하지 않습니다.

巴扎黑
巴扎黑원래의
2016-12-07 09:38:161473검색

json 문자열을 인용하기 위해 작은따옴표를 사용하지 않으려면 python 표준 라이브러리의 json 구문 분석 기능인 json.loads를 사용하세요. 예는 다음과 같습니다.

대신 큰따옴표를 사용하거나 json.dumps(a 앞에 로드) )도 사용할 수 있습니다.

>>> a = "{'aa':'dd','dd':'df'}"
>>> import json
>>> b = json.loads(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
    obj, end = self._scanner.iterscan(s, **kw).next()
  File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
    rval, next_pos = action(m, context)
  File "/usr/lib64/python2.6/json/decoder.py", line 171, in JSONObject
    raise ValueError(errmsg("Expecting property name", s, end))
ValueError: Expecting property name: line 1 column 1 (char 1)
>>> a = &#39;{"aa":"asdf","dd":"dfads"}
  File "<stdin>", line 1
    a = &#39;{"aa":"asdf","dd":"dfads"}
                                  ^
SyntaxError: EOL while scanning string literal
>>> a = &#39;{"aa":"asdf","dd":"dfads"}&#39;
>>> b = json.loads(a)
>>> b
>>> <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">{u&#39;aa&#39;: u&#39;asdf&#39;, u&#39;dd&#39;: u&#39;dfads&#39;}</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">
</span>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.