我正在尝试运行以下代码,该代码将JSON字符串转换为Python:
test = """
{"t":"\""}
"""
a=json.loads(test)
当我试图运行这段代码时,它会给出:
---------------------------------------------------------------------------
JSONDecodeError Traceback (most recent call last)
Input In [45], in <cell line: 4>()
1 test = """
2 {"t":"\""}
3 """
----> 4 a=json.loads(test)
5 a
File /usr/local/lib/python3.9/json/__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
341 s = s.decode(detect_encoding(s), 'surrogatepass')
343 if (cls is None and object_hook is None and
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
--> 346 return _default_decoder.decode(s)
347 if cls is None:
348 cls = JSONDecoder
File /usr/local/lib/python3.9/json/decoder.py:337, in JSONDecoder.decode(self, s, _w)
332 def decode(self, s, _w=WHITESPACE.match):
333 """Return the Python representation of ``s`` (a ``str`` instance
334 containing a JSON document).
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
338 end = _w(s, end).end()
339 if end != len(s):
File /usr/local/lib/python3.9/json/decoder.py:353, in JSONDecoder.raw_decode(self, s, idx)
344 """Decode a JSON document from ``s`` (a ``str`` beginning with
345 a JSON document) and return a 2-tuple of the Python
346 representation and the index in ``s`` where the document ended.
(...)
350
351 """
352 try:
--> 353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
355 raise JSONDecodeError("Expecting value", s, err.value) from None
JSONDecodeError: Expecting ',' delimiter: line 2 column 8 (char 8)
鉴于:
test = """
{
"t":"jjlsjdlk"
}
"""
a=json.loads(test)
效果很好。如何转义引号字符?
发布于 2022-05-03 10:18:22
这就是如何在"t"
值中转义双引号的方法。
test = r'{"t":"\""}'
a=json.loads(test)
如果您真的想要多行,请使用带有双反斜杠的简单字符串:
test = '\
{\
"t": "\\""\
}\
'
a=json.loads(test)
https://stackoverflow.com/questions/72097717
复制相似问题