Разбор множественных значений с Google Refine

У меня есть столбец CSV с таким содержимым (просто пример):

[{"qual"=>"05-Admmin "name"=>"CLARK C COHO"}, {"qual"=>"20-Soc Con", "name"=>"ALPHA S A"}, {"qual"=>"20-Soc Con", "name"=>"JACK SA"}

Я хотел бы автоматически извлечь значения из поля "имя" и отделить его запятой, что приведет к чему-то вроде этого: CLARCK C COHO, ALPHA S A, JACK SA и так далее.

Я знаю, что могу получить конкретное значение с помощью этого кода:

value.parseJson()[0].name

Я читал документацию, но я не понимаю, как зациклить это между всеми полями.

Какие-нибудь советы?

РЕДАКТИРОВАТЬ: Вот еще один пример столбца. Содержание действительно выглядит так:

[{"qual"=>"49-SocAdm", "name"=>"ALVARO R L"}, {"qual"=>"49-SocAdm", "name"=>"GABRIEL G L"}]

1 ответ

Решение

Данные в вашем CSV не в формате JSON. Я не знаю что это. Это своего рода формат значения ключа, но я не знаю, какой именно. Кроме того, иногда не хватает запятой или скобки. Мы могли бы попытаться преобразовать его в действительный JSOn, но будет проще извлечь информацию с помощью регулярных выражений. Вот пример с Python / Jython.

import re

pattern = re.compile(r'"name"=>"(.+?)"', re.M)

return ", ".join(pattern.findall(value))

Скриншот

Другие вопросы по тегам