GameConfigIdea / json_utils.py
kwabs22
Port changes from duplicate space to original
9328e91
"""JSON utility functions for error visualization and correction."""
import json
def find_and_visualize_json_errors(json_string):
"""Find JSON syntax errors and insert newlines at error positions.
This helps visualize where JSON parsing errors occur by adding
line breaks at problematic positions.
Args:
json_string: The JSON string to analyze
Returns:
String with newlines inserted at error positions
"""
error_positions = []
start = 0
while start < len(json_string):
try:
json.loads(json_string[start:])
break # If no error, we're done
except json.JSONDecodeError as e:
position = start + e.pos
if not error_positions or position > error_positions[-1] + 10:
error_positions.append(position)
start = position + 1
# Insert newlines at error positions
result = ""
last_pos = 0
for pos in error_positions:
result += json_string[last_pos:pos] + "\n"
last_pos = pos
result += json_string[last_pos:]
return result
def join_lines_after_correct_json_errors(lines, separator='\n'):
"""Join lines back together after JSON error correction.
Args:
lines: List of line strings
separator: Separator to use when joining (default: newline)
Returns:
Joined string
"""
return separator.join(lines)