Я использую предоставленный мне набор данных и пытаюсь проанализировать (используя узел) возвращенные мне объекты JSON,
Оказывается, все они используют одинарные кавычки, и из моего исследования JSON использует double.
Пример объекта JSON, который мне возвращают!
{
'cast_id': 16,
'character': 'Alexander Haig',
'credit_id': '52fe43c59251416c7501d72d',
'gender': 2,
'id': 6280,
'name': 'Powers Boothe',
'order': 2,
'profile_path': '/3nNL6AvMAYq0BmHKM79RnRZVq3i.jpg'
},
Я использовал str.replace()
для рассортируйте объекты раньше JSON.parse()
, что было хорошо, пока я не нашел подобные объекты
{
'cast_id': 26,
'character': '"Jack Jones"',
'credit_id': '52fe43c59251416c7501d751',
'gender': 2,
'id': 6840,
'name': 'Larry Hagman',
'order': 16,
'profile_path': '/40PVsGp5Wp5kbUhAefLHqjqbarc.jpg'
},
Обратите внимание на 'character': '"Jack Jones"',
Это вызывает у меня все типы проблем!
Я там библиотека, которая поможет мне разобрать все это?
Я что-то упустил?
К вашему сведению:
Я не могу получить доступ к каждой записи, так как объекты JSON не отображаются. Вместо этого хранится отдельно, как длинная строка, включающая до 60 JSON объектов.
В настоящее время у меня есть функция, которая помогает анализировать данные:
function formatJSON(cast) {
cast = cast.replace(/(\w) "(\w)/g, "$1 *$2");
cast = cast.replace(/(\w)" /g, "$1* ");
cast = cast.replace(/': '/g, '": "');
cast = cast.replace(/', '/g, '", "' );
cast = cast.replace(/'},/g, '"},');
cast = cast.replace(/': /g, '": ');
cast = cast.replace(/, '/g, ', "');
cast = cast.replace(/{'/g, '{"');
cast = cast.replace(/: None}/g, ': "None"}');
cast = cast.replace(/'}/g, '"}');
return cast;
}
Обновление
Данные как сообщается, извлекается в python как словарь, используя ast.literal_eval()