Je suis nouveau à Ruby et j'avais une question. J'essaie de créer un fichier .rb qui convertit JSON en CSV.JSON à CSV via FasterCSV
je suis tombé sur des sources disparates qui me ont à faire:
require "rubygems"
require 'fastercsv'
require 'json'
csv_string = FasterCSV.generate({}) do |csv|
JSON.parse(File.open("small.json").read).each do |hash|
csv << hash
end
end
puts csv_string
Maintenant, il fait en fait le texte de sortie, mais ils sont tous soudées ensemble, sans espaces, virgules, etc. Comment puis-je le rendre plus personnalisé , effacer pour un fichier CSV afin que je puisse exporter ce fichier?
Le JSON ressemblerait à ceci:
{
"results": [
{
"reportingId": "s",
"listingType": "Business",
"hasExposureProducts": false,
"name": "Medeco Medical Centre World Square",
"primaryAddress": {
"geoCodeGranularity": "PROPERTY",
"addressLine": "Shop 9.01 World Sq Shopng Cntr 644 George St",
"longitude": "151.206172",
"suburb": "Sydney",
"state": "NSW",
"postcode": "2000",
"latitude": "-33.876416",
"type": "VANITY"
},
"primaryContacts": [
{
"type": "PHONE",
"value": "(02) 9264 8500"
}
]
},xxx
}
Le CSV d'avoir quelque chose comme:
reportingId, s, listingType, Business, name, Medeco Medical...., addressLine, xxxxx, longitude, xxxx, latitude, xxxx, state, NSW, postcode, 2000, type, phone, value, (02) 92648544
À quoi ressemble le JSON? À quoi voulez-vous que le CSV ressemble? –
juste mis à jour question mate. Ta – Doz
C'est un format CSV bizarre - normalement CSV aurait des colonnes de clés dans la première ligne et des valeurs comme des colonnes dans les rangées suivantes (par conséquent mapper votre structure JSON imbriquée va être désordonné) –