json: fix _format_literal (json.dumps already escapes quotes)

This commit is contained in:
ochafik 2024-03-05 03:25:43 +00:00
parent 21ac451d8e
commit a78eb4a0c3

View file

@ -24,8 +24,8 @@ PRIMITIVE_RULES = {
} }
INVALID_RULE_CHARS_RE = re.compile(r'[^a-zA-Z0-9-]+') INVALID_RULE_CHARS_RE = re.compile(r'[^a-zA-Z0-9-]+')
GRAMMAR_LITERAL_ESCAPE_RE = re.compile(r'[\r\n"]') GRAMMAR_LITERAL_ESCAPE_RE = re.compile(r'[\r\n]')
GRAMMAR_LITERAL_ESCAPES = {'\r': '\\r', '\n': '\\n', '"': '\\"'} GRAMMAR_LITERAL_ESCAPES = {'\r': '\\r', '\n': '\\n'}
class SchemaConverter: class SchemaConverter:
@ -36,7 +36,7 @@ class SchemaConverter:
def _format_literal(self, literal): def _format_literal(self, literal):
escaped = GRAMMAR_LITERAL_ESCAPE_RE.sub( escaped = GRAMMAR_LITERAL_ESCAPE_RE.sub(
lambda m: GRAMMAR_LITERAL_ESCAPES.get(m.group(0)), json.dumps(literal) lambda m: GRAMMAR_LITERAL_ESCAPES.get(m.group(0)), json.dumps(literal)[1:-1]
) )
return f'"{escaped}"' return f'"{escaped}"'