Обработка CSV с разделенными двоеточиями парами в полях - PullRequest
0 голосов
/ 20 октября 2018

У меня есть CSV в формате

Fruit:Apple,Seeds:Yes,Colour:Red or Green
Fruit:Orange,Seeds:No,Colour:Orange
Fruit:Pear,Seeds:Yes,Colour:Green,Shape:Odd
Fruit:Banana,Seeds:No,Colour:Yellow,Shape:Also Odd

, и я хочу иметь возможность использовать объект JSON для этих значений, который выглядит примерно так:

{"requestdata":{
 "testdata":"example",
 "testcategory":"category",
 "fruits":{
          "Fruit":{
                 "value":"Apple"
                 "type":"string"},
           "Seeds":{
                  "value":"Yes"
                  "type":"bool"}
            }

и т. Д.

Я знаю, что могу загрузить CSV выбранным разделителем, но как мне указать второй разделитель?Или я должен попытаться создать словарь вместо каждой ячейки данных и рассматривать его как строку для разделения?

1 Ответ

0 голосов
/ 20 октября 2018

Вы должны просто разделить запятую и использовать разделение строк для обработки оставшихся элементов, построения словаря, а затем попросить модуль json создать JSON из словаря.Довольно просто создать искаженный JSON, если попытаться быть умным с обработкой текста, например

  • Забыв процитировать ключи.
  • Цитирование значений, которые вы не имели в виду
  • Не экранирование спецсимволов JSON

Создание словаря и последующее выполнение moule сделают ваш код многоболее легок в обслуживании и менее подвержен ошибкам.

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