У меня есть веб-API Python, который возвращает JSON с префиксом «u» вместо стандартных двойных кавычек.
Я хочу иметь возможность анализировать это на С++ с помощью функции RapidJSON document.Parse(string), однако форматирование Python не позволяет RapidJSON проверять его как правильный JSON.
Как лучше всего правильно отформатировать JSON и удалить префиксы для анализа с помощью RapidJSON?
Ниже приведена строка, которую я хочу проанализировать с помощью RapidJSON, однако утверждение IsObject() не выполняется (при условии, что RapidJSON не может анализировать строки Unicode JSON в формате Python).
{u'artist': u'Death Grips', u'track': u'Hunger Games', u'import_date': datetime.datetime(2015, 12, 1, 4, 6, 23), u'track_id': u'TRUCCPM1515BB84DDF-0', u'codever': u'4.12', u'length': 159, u'score': 4.8918204, u'source': u'local', u'release': u'No Love Deep Web'}
Спасибо!
Редактировать:
Оказывается, мой ответ был не JSON, а Python dict. json.dumps в dict не работал из-за неподдерживаемого типа (datetime.datetime). Я удалил оскорбительную запись, используя
del response.metadata[u'import_date'];
Затем выполнение json.dumps(response.metadata)
сработало правильно и вернуло JSON.