json-repair 0.29.4__py3-none-any.whl → 0.29.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- json_repair/json_parser.py +19 -6
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/METADATA +1 -1
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/RECORD +7 -7
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/LICENSE +0 -0
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/WHEEL +0 -0
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/entry_points.txt +0 -0
- {json_repair-0.29.4.dist-info → json_repair-0.29.6.dist-info}/top_level.txt +0 -0
json_repair/json_parser.py
CHANGED
@@ -316,6 +316,15 @@ class JSONParser:
|
|
316
316
|
next_c = self.get_char_at(i)
|
317
317
|
if next_c and next_c in [",", "}"]:
|
318
318
|
rstring_delimiter_missing = False
|
319
|
+
elif char == ",":
|
320
|
+
# We couldn't find any rstring_delimeter before the end of the string
|
321
|
+
# check if this is the last string of an object and therefore we can keep going
|
322
|
+
# make an exception if this is the last char before the closing brace
|
323
|
+
i = self.skip_to_character(character="}", idx=1)
|
324
|
+
if i > 1:
|
325
|
+
# Ok it's not right after the comma
|
326
|
+
# Let's ignore
|
327
|
+
rstring_delimiter_missing = False
|
319
328
|
if rstring_delimiter_missing:
|
320
329
|
self.log(
|
321
330
|
"While parsing a string missing the left delimiter in object value context, we found a , or } and we couldn't determine that a right delimiter was present. Stopping here",
|
@@ -424,7 +433,9 @@ class JSONParser:
|
|
424
433
|
string_acc += str(char)
|
425
434
|
self.index += 1
|
426
435
|
char = self.get_char_at()
|
427
|
-
elif
|
436
|
+
elif (
|
437
|
+
next_c == rstring_delimiter and self.get_char_at(i - 1) != "\\"
|
438
|
+
):
|
428
439
|
if self.context.current == ContextValues.OBJECT_VALUE:
|
429
440
|
# But this might not be it! This could be just a missing comma
|
430
441
|
# We found a delimiter and we need to check if this is a key
|
@@ -436,11 +447,10 @@ class JSONParser:
|
|
436
447
|
i += 1
|
437
448
|
next_c = self.get_char_at(i)
|
438
449
|
while next_c and next_c != ":":
|
439
|
-
if next_c
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
]:
|
450
|
+
if next_c == "," or (
|
451
|
+
next_c == rstring_delimiter
|
452
|
+
and self.get_char_at(i - 1) != "\\"
|
453
|
+
):
|
444
454
|
break
|
445
455
|
i += 1
|
446
456
|
next_c = self.get_char_at(i)
|
@@ -569,6 +579,9 @@ class JSONParser:
|
|
569
579
|
char = self.json_str[self.index + idx]
|
570
580
|
except IndexError:
|
571
581
|
return idx
|
582
|
+
if self.index + idx > 0 and self.json_str[self.index + idx - 1] == "\\":
|
583
|
+
# Ah this is an escaped character, try again
|
584
|
+
return self.skip_to_character(character=character, idx=idx + 1)
|
572
585
|
return idx
|
573
586
|
|
574
587
|
def _log(self, text: str) -> None:
|
@@ -1,13 +1,13 @@
|
|
1
1
|
json_repair/__init__.py,sha256=IIzSm1DsCRrr8seF3UeMZXwxcq-tE3j-8d1WBxvEJvE,178
|
2
2
|
json_repair/__main__.py,sha256=EsJb-y89uZEvGQQg1GdIDWzfDwfOMvVekKEtdguQXCM,67
|
3
3
|
json_repair/json_context.py,sha256=DdJu3DJR-ANvr8KrWfJqdtOE3uI6_B0VQidKvE3PjJA,1080
|
4
|
-
json_repair/json_parser.py,sha256=
|
4
|
+
json_repair/json_parser.py,sha256=6d8R2m29meyFz2_gxvF5olYs1VytAQTV-rDqIYzwjnE,26385
|
5
5
|
json_repair/json_repair.py,sha256=GTg3OAXRbAJAHWs8oiQDqUHh4h6qKDVvWPXcrqafzLY,6100
|
6
6
|
json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
json_repair/string_file_wrapper.py,sha256=EHLhNBWoyUitzT08thytYJiNZh_klEFwfT8zutPSdb4,3905
|
8
|
-
json_repair-0.29.
|
9
|
-
json_repair-0.29.
|
10
|
-
json_repair-0.29.
|
11
|
-
json_repair-0.29.
|
12
|
-
json_repair-0.29.
|
13
|
-
json_repair-0.29.
|
8
|
+
json_repair-0.29.6.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
|
9
|
+
json_repair-0.29.6.dist-info/METADATA,sha256=Us1Nn8o5yaJHnssGY5t7X1yfii0NRCvlSjBH9TyANnw,10686
|
10
|
+
json_repair-0.29.6.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
11
|
+
json_repair-0.29.6.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
|
12
|
+
json_repair-0.29.6.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
|
13
|
+
json_repair-0.29.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|