#python #arrays #json
#python #массивы #json
Вопрос:
У меня есть приложение на python, которое отправляет странный массив объектов в мое приложение node js в строковом формате, например :
"[{'foo':'bar'},{'hello':'world'}]"
Я пытаюсь разобрать ее с JSON.parse()
помощью, но получаю ошибки :
SyntaxError: Unexpected token ' in JSON at position 1
На стороне python массив распознается как настоящий список массивов, но когда я передаю его в nodejs с помощью оболочки python, это становится строковым массивом объектов.
Есть предложения по ее разбору?
Комментарии:
1. Исправьте свое приложение на Python, чтобы оно вместо этого отправляло правильный JSON
2. Я думаю, что в моем приложении на python нет ничего плохого, я использую собственный модуль json с
json.loads
иjson.dumps
перед отправкой моего json3. Опубликованная вами строка не является допустимым JSON. Это помогло бы увидеть код Python, который сгенерировал этот ответ, и исправить любые проблемы там.
Ответ №1:
JSON.parse() не будет принимать одинарные кавычки в качестве границ строки. Эта строка с использованием двойных кавычек работает нормально:
console.log(JSON.parse('[{"foo":"bar"},{"hello":"world"}]'));
Если невозможно изменить приложение на Python, вы можете заменить одинарные кавычки на двойные кавычки перед синтаксическим анализом строки в формате JSON.
Ответ №2:
Как насчет использования json.load()?
import json
inp = "[{'foo':'bar'},{'hello':'world'}]"
a = json.loads(inp.replace("'",'"'))
print(a)
Вывод (список словарей) :
[{'foo': 'bar'}, {'hello': 'world'}]