Обратите внимание, что в вашей строке более одной проблемы, делающей ее недействительной JSON
:
Ошибка, которую вы видите - \xa0
(неразрывный пробел).Это необходимо устранить до того, как проблема ""
станет проблемой.
В вашей строке отсутствует закрывающий }
.
Тем не менее, для строки, которую вы цитировали первой, однаподход к решению ваших проблем заключается в использовании .replace()
:
string1 = '{"id":17033,"project_id":17033,"state":"active","state_changed_at":1488054590,"name":"a.k.a.:\xa0"The Sunshine Makers""'.replace('\xa0"', "'").replace('""', "'\"") + '}'
Например, следующее обрабатывает двойные кавычки и другие проблемы в ваших двух примерах:
import json
fixes = [('\xa0', ' '),('"',"'"),("{'",'{"'),("','", '","'),(",'", ',"'),("':'", '":"'),("':", '":'),("''", '\'\"'), ("'}",'"}')]
print(fixes)
string1 = '{"id":17033,"project_id":17033,"state":"active","state_changed_at":1488054590,"name":"a.k.a.:\xa0"The Sunshine Makers""'
string2 = '{"id":960066,"project_id":960066,"state":"active","state_changed_at":1502049940,"name":"New J. Lye Album - Behind The Lyes","blurb":"I am working on my new project titled "Behind The Lyes" which is coming out fall of 2017."'
strings = [string1, string2]
for string in strings:
print(string)
string = string + '}'
for fix in fixes:
string = string.replace(*fix)
print(string)
print(json.loads(string)['name'])
Itбыло бы полезно, если бы вы могли заполнить свой вопрос кодом или файлом, из которого вы извлекаете эти строки.Это позволило бы дать более полный ответ.