как преобразовать данные типа JSON в формат CSV - PullRequest
0 голосов
/ 26 марта 2019

Любое предложение о том, как преобразовать следующие данные в файл CSV в Python:

[{
  'name': 'a',
  'url': 'url1'
}, 
{
  'name': 'b',
  'url': 'url2'
}, 
{
  'name': 'c',
  'url': 'url3'
}]

спасибо.

1 Ответ

1 голос
/ 26 марта 2019

Это не так просто, как я сказал в своем первом комментарии.Когда я сказал это, я не понял, что ваша входная строка не в каком-либо стандартном формате, который легко прочитать с помощью библиотеки JSON или интерпретировать как код Python.

Вот очень ограничительный ответ, который будетработают только с входными строками, которые имеют очень специфическую форму:

data = "[{name:a,url:url1},{name:b,url:url2},{name:c,url:url3}]"
entries = re.findall("{([^:]+):([^,]+),([^:]+):([^}]+)", data)
with open("/tmp/output.csv", "w") as f:
    f.write("Name,Url\n")
    for entry in entries:
        f.write(entry[1] + ',' + entry[3] + '\n')

Результирующее содержимое файла:

Name,Url
a,url1
b,url2
c,url3
...