解析解码JSON数组为CSV
问题描述:
我有一个包含数百万这样大小的阵列的文件:解析解码JSON数组为CSV
{
"leagues" : [{
"tier" : "SILVER",
"entries" : [{
"playerOrTeamId" : "359",
"playerOrTeamName" : "TryHard",
"division" : "II",
"leaguePoints" : "63",
"wins" : "65"
}],
"id" : "359"
}],
"summonerId" : "359",
"region" : "euw",
"updatedAt" : "1412122432"
},
这是,例如,最小的阵列,还有一些阵列具有包含其他链接的阵列。有关主数组的额外信息。例如:
{
"summonerId" : "477",
"region" : "euw",
"leagues" : [{
"tier" : "GOLD",
"entries" : [{
"playerOrTeamId" : "477",
"playerOrTeamName" : "Alucard662545",
"division" : "V",
"leaguePoints" : "9",
"wins" : "128"
}]
}, {
"tier" : "SILVER",
"entries" : [{
"playerOrTeamId" : "TEAM-8d6a3640-2da8-11e2-99dc-782bcb4ce61a",
"playerOrTeamName" : "CAPCOMP BE",
"division" : "V",
"leaguePoints" : "0",
"wins" : "24"
}]
}, {
"tier" : "BRONZE",
"entries" : [{
"playerOrTeamId" : "TEAM-8d6a3640-2da8-11e2-99dc-782bcb4ce61a",
"playerOrTeamName" : "CAPCOMP BE",
"division" : "I",
"leaguePoints" : "55",
"wins" : "8"
}]
}],
"updatedAt" : "1410786559"
},
我从字面上把头发拉出头部,花了两个日夜才弄明白。我有MongoDB存储这些信息的地方,当我导出时,我只能得到解码的JSON数组。我需要这些东西完全CSV格式。我可以如何命名CSV格式一百万像这样的数组?
答
你有两个选择:
mongoexport是产生JSON或存储在MongoDB实例数据的CSV文件导出的工具。用例:
mongoexport --db users --collection contacts --csv --fieldFile fields.txt --out /opt/backups/contacts.csv
这需要在\ R-终止fields.txt文件中指定的字段,每行一个,从集合contacts
,并将它们放入/opt/backups/contacts.csv。
任何其他读取JSON的方式为一种语言并编写csv。蟒蛇的一个例子如下:
from pymongo import MongoClient
import csv
client = MongoClient()
db = client['test-database']
collection = db.test_collection
writer = csv.writer('/opt/backups/contacts.csv')
writer.writerow([k for k in collection])
writer writerows([[v for v in c] for c in collection])
...并做同样的希望帮助。
除列分隔符之外,csv没有“格式”。没有规定嵌套记录。只有列。而且,由于您提供了** NO **详细信息,说明您希望您的csv的外观如何,因此我们无法帮助您 - 即使有人确实希望为您编写代码。我们在这里帮助,而不是为你做你的工作。 – 2014-10-08 21:05:54
有点苛刻的马克B,但@ floppy软盘到您的问题,我想你可能不得不考虑创建一个使用java脚本的csv字符串,并循环你当前的js对象来提取然后添加到你的csv字符串。这是否超出了你的想法?显然,我会从一个较小的数据集开始测试。 – 2014-10-08 21:10:45
我没有发现马克的事实和真实的陈述是苛刻的先生康科拉托。 – 2014-10-08 21:12:44