Очистка строк JSON без \ - PullRequest
0 голосов
/ 26 мая 2019

При успешном запросе из результата SQL SELECT имеются выходные данные json с \ n и \. Это вызывает у меня путаницу и препятствия для десериализации строки json в массив объектов. Скажите, пожалуйста, как заменить все эти строки json без перевода строки, пробелов, а также черных черт \?

  dicts = [dict(row) for row in result]
  j = json.dumps(dicts ,  sort_keys=True,
  indent=None,
  default=default , separators=(',', ':'))

  return {
    'result':  j
  }

Вот мой вывод JSON с множеством слэшей \

{"result": "[{\"_access\":[{\"level\":\"read\",\"public\":true}],\"_created_at\":\"2019-05-26T09:57:10.494525\",\"_created_by\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"_database_id\":\"\",\"_id\":\"3f674e29-29ba-4dcf-b9d9-f99a3c35866e\",\"_owner_id\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"_updated_at\":\"2019-05-26T10:01:14.691527\",\"_updated_by\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"book_label\":\"B198\",\"deleted_at\":null,\"deleted_by\":null,\"free_assign_date\":null,\"free_assign_end_date\":null,\"is_completed\":false,\"is_free_assigned\":true,\"progress_chapter\":1,\"total_chapters\":2,\"user_label\":\"user10\"}]"}

Ответы [ 2 ]

1 голос
/ 26 мая 2019

Запись ["result"] в dict является строкой. Вам просто нужно разобрать это. json.dumps делает противоположное тому, что вы ищете - конвертирует JSON в строку. Вы хотите json.loads, который преобразует строку в данные JSON.

0 голосов
/ 26 мая 2019
import json
result_str = "[{\"_access\":[{\"level\":\"read\",\"public\":true}],\"_created_at\":\"2019-05-26T09:57:10.494525\",\"_created_by\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"_database_id\":\"\",\"_id\":\"3f674e29-29ba-4dcf-b9d9-f99a3c35866e\",\"_owner_id\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"_updated_at\":\"2019-05-26T10:01:14.691527\",\"_updated_by\":\"473ee711-19a0-4309-8cb2-7f672fd93224\",\"book_label\":\"B198\",\"deleted_at\":null,\"deleted_by\":null,\"free_assign_date\":null,\"free_assign_end_date\":null,\"is_completed\":false,\"is_free_assigned\":true,\"progress_chapter\":1,\"total_chapters\":2,\"user_label\":\"user10\"}]"

js_obj = json.loads(result_str)

print json.dumps(js_obj)

попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...