Разбор множественных значений с 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))