Javascript 将数据从Cloudant/CouchDB导出到CSV
从Cloudant将数据导出到CSV时遇到一些小问题。当前正在使用此处找到的CSV函数: 问题是一些数据后来添加了2-3个字段。当它下载文档时,它只是将信息一个接一个地放在一起,它不能解释一些旧的数据丢失字段,因此数据会错位 我尝试过创建函数,尝试检测字段是否存在,以及字段是否未设置为空字符串 下面是我尝试过的,它给了我一个错误:{“error”:“compilation\u error”,“reason”:“表达式不向函数求值”Javascript 将数据从Cloudant/CouchDB导出到CSV,javascript,csv,couchdb,cloudant,Javascript,Csv,Couchdb,Cloudant,从Cloudant将数据导出到CSV时遇到一些小问题。当前正在使用此处找到的CSV函数: 问题是一些数据后来添加了2-3个字段。当它下载文档时,它只是将信息一个接一个地放在一起,它不能解释一些旧的数据丢失字段,因此数据会错位 我尝试过创建函数,尝试检测字段是否存在,以及字段是否未设置为空字符串 下面是我尝试过的,它给了我一个错误:{“error”:“compilation\u error”,“reason”:“表达式不向函数求值” // output HTTP headers start(
// output HTTP headers
start({
headers: { 'Content-Type': 'text/csv' },
});
// iterate through the result set
while(row = getRow()) {
// get the doc (include_docs=true)
var doc = row.doc;
// if this is the first row
if (first) {
// output column headers
send(Object.keys(doc).join(',') + 'n');
first = false;
}
// build up a line of output
var line = '';
// iterate through each row
//for(var i in doc) {
if (doc.hasOwnProperty('customerNumber')) {
} else {
doc.customerNumber = '';
}
if (doc.hasOwnProperty('affiliateNumber')) {
} else {
doc.affiliateNumber = '';
}
if (doc.hasOwnProperty('dunsNumber')) {
} else {
doc.dunsNumber = '';
}
if (doc.hasOwnProperty('dunsDomestic')) {
} else {
doc.dunsDomestic = '';
}
if (doc.hasOwnProperty('dunsGlobal')) {
} else {
doc.dunsGlobal = '';
}
if (doc.hasOwnProperty('countryCode')) {
} else {
doc.countryCode = '';
}
if (doc.hasOwnProperty('companyName')) {
} else {
doc.companyName = '';
}
if (doc.hasOwnProperty('countryPreapprovedAmt')) {
} else {
doc.countryPreapprovedAmt = '';
}
if (doc.hasOwnProperty('preapprovedAmt')) {
} else {
doc.preapprovedAmt = '';
}
if (doc.hasOwnProperty('currency')) {
} else {
doc.currency = '';
}
if (doc.hasOwnProperty('expirationDate')) {
} else {
doc.expirationDate = '';
}
if (doc.hasOwnProperty('blacklist')) {
} else {
doc.blacklist = '';
}
line += doc.customerNumber + ',' + doc.affiliateNumber + ',' + doc.dunsNumber+ ',' + doc.dunsDomestic+ ',' + doc.dunsGlobal+ ',' + doc.countryCode+ ',' + doc.companyName+ ',' + doc.countryPreapprovedAmt+ ',' + doc.preapprovedAmt+ ',' + doc.currency+ ',' + doc.expirationDate+ ',' + doc.blacklist;
//}
line += 'n';
// send the line
send(line);
}
};
当它遇到一段不包含所有这些字段的数据时,它会检测到它。分配一个空字符串,以便在下载csv时数据对齐。如果要从CouchDB/Cloudant的相对平坦的文档生成csv文件,您有两个选项:
couchexport --db mydb > mydb.csv
如果文档的格式不正确,可以提供“筛选”功能将数据强制转换为正确的格式。如果要从CouchDB/Cloudant的相对扁平的文档生成CSV文件,您有两个选项:
couchexport --db mydb > mydb.csv
如果文档格式不正确,则会出现一个“过滤器”"可以提供函数将数据强制转换为正确的形式。Hi@user3413540。您的问题是什么,我们可以提供什么帮助?当将JSON导出到csv时,假设一个数据段有10个字段。它将一个接一个地放置每一个数据段。虽然有一些较旧的数据段有7-8个字段,但当它逐个放置时,它在csv文件中不对齐。我正在寻找一种方法来检测是否有字段丢失,用空格填充以正确对齐所有内容。我认为Glynn的答案应该符合该描述。您好@user3413540。您的问题是什么,我们如何帮助您?将JSON导出到csv时,假设一条数据有10个字段。我t将一个接一个地连续放置每个数据段。虽然有一些较旧的数据有7-8个字段,但当它逐个放置时,csv文件中的字段不对齐。我正在寻找一种方法来检测是否缺少字段,用空格填充以正确对齐所有内容。我认为Glynn的回答应该符合该描述。