Fix handling of non-JSON lines in responses
Garbage lines with ' = ' in them were causing parsing errors, where key=val lines should not have spaces around the equals. Fixes #6962
This commit is contained in:
parent
09e0d1c51f
commit
5e598c5337
1 changed files with 2 additions and 1 deletions
|
@ -884,10 +884,11 @@ def filter_leading_non_json_lines(buf):
|
||||||
filter only leading lines since multiline JSON is valid.
|
filter only leading lines since multiline JSON is valid.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
kv_regex = re.compile(r'.*\w+=\w+.*')
|
||||||
filtered_lines = StringIO.StringIO()
|
filtered_lines = StringIO.StringIO()
|
||||||
stop_filtering = False
|
stop_filtering = False
|
||||||
for line in buf.splitlines():
|
for line in buf.splitlines():
|
||||||
if stop_filtering or "=" in line or line.startswith('{') or line.startswith('['):
|
if stop_filtering or kv_regex.match(line) or line.startswith('{') or line.startswith('['):
|
||||||
stop_filtering = True
|
stop_filtering = True
|
||||||
filtered_lines.write(line + '\n')
|
filtered_lines.write(line + '\n')
|
||||||
return filtered_lines.getvalue()
|
return filtered_lines.getvalue()
|
||||||
|
|
Loading…
Reference in a new issue