fixed csv_string_to_list when data contains null
Browse files- lightrag/utils.py +17 -3
lightrag/utils.py
CHANGED
|
@@ -253,9 +253,23 @@ def list_of_list_to_csv(data: List[List[str]]) -> str:
|
|
| 253 |
|
| 254 |
|
| 255 |
def csv_string_to_list(csv_string: str) -> List[List[str]]:
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 259 |
|
| 260 |
|
| 261 |
def save_data_to_file(data, file_name):
|
|
|
|
| 253 |
|
| 254 |
|
| 255 |
def csv_string_to_list(csv_string: str) -> List[List[str]]:
|
| 256 |
+
# Clean the string by removing NUL characters
|
| 257 |
+
cleaned_string = csv_string.replace('\0', '')
|
| 258 |
+
|
| 259 |
+
output = io.StringIO(cleaned_string)
|
| 260 |
+
reader = csv.reader(
|
| 261 |
+
output,
|
| 262 |
+
quoting=csv.QUOTE_ALL, # Match the writer configuration
|
| 263 |
+
escapechar='\\', # Use backslash as escape character
|
| 264 |
+
quotechar='"', # Use double quotes
|
| 265 |
+
)
|
| 266 |
+
|
| 267 |
+
try:
|
| 268 |
+
return [row for row in reader]
|
| 269 |
+
except csv.Error as e:
|
| 270 |
+
raise ValueError(f"Failed to parse CSV string: {str(e)}")
|
| 271 |
+
finally:
|
| 272 |
+
output.close()
|
| 273 |
|
| 274 |
|
| 275 |
def save_data_to_file(data, file_name):
|