J'en suis accro, alors je vais en prendre note.
Même si vous écrivez la séquence d'échappement (\
) telle qu'elle est dans le document here, elle ne sera pas développée comme séquence d'échappement.
Il peut être développé en écrivant deux à la suite comme \\
ou en utilisant une chaîne de caractères brute.
>>> import json
>>>
>>> json_dict1 = json.loads('''
... {
... "id": 1,
... "name": "hoge",
... "discription": "Hoge\"Hoge\"Hoge"
... }
... ''')
Traceback (most recent call last):
File "<stdin>", line 7, in <module>
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 5 column 24 (char 59)
>>> print(json_dict1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'json_dict1' is not defined
>>>
>>> json_dict2 = json.loads('''
... {
... "id": 2,
... "name": "hoge",
... "discription": "Hoge\\"Hoge\\"Hoge"
... }
... ''')
>>> print(json_dict2)
{'id': 2, 'name': 'hoge', 'discription': 'Hoge"Hoge"Hoge'}
>>>
>>> json_dict3 = json.loads(r'''
... {
... "id": 3,
... "name": "hoge",
... "discription": "Hoge\"Hoge\"Hoge"
... }
... ''')
>>> print(json_dict3)
{'id': 3, 'name': 'hoge', 'discription': 'Hoge"Hoge"Hoge'}
Recommended Posts