Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从Cloudant/CouchDB导出到CSV_Javascript_Csv_Couchdb_Cloudant - Fatal编程技术网

Javascript 将数据从Cloudant/CouchDB导出到CSV

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(

从Cloudant将数据导出到CSV时遇到一些小问题。当前正在使用此处找到的CSV函数:

问题是一些数据后来添加了2-3个字段。当它下载文档时,它只是将信息一个接一个地放在一起,它不能解释一些旧的数据丢失字段,因此数据会错位

我尝试过创建函数,尝试检测字段是否存在,以及字段是否未设置为空字符串

下面是我尝试过的,它给了我一个错误:{“error”:“compilation\u error”,“reason”:“表达式不向函数求值”


 // 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文件,您有两个选项:

  • 使用CouchDB“list”函数,如您链接的博客文章中所述
  • 使用实用程序将数据导出为JSON,并在客户端转换为CSV
  • 选项2可以通过CoucheExport配套工具附带的开源实用程序来实现:

    数据在命令行上导出,并可以通过管道传输到文件进行进一步分析

    couchexport --db mydb > mydb.csv
    

    如果文档的格式不正确,可以提供“筛选”功能将数据强制转换为正确的格式。

    如果要从CouchDB/Cloudant的相对扁平的文档生成CSV文件,您有两个选项:

  • 使用CouchDB“list”函数,如您链接的博客文章中所述
  • 使用实用程序将数据导出为JSON,并在客户端转换为CSV
  • 选项2可以通过CoucheExport配套工具附带的开源实用程序来实现:

    数据在命令行上导出,并可以通过管道传输到文件进行进一步分析

    couchexport --db mydb > mydb.csv
    

    如果文档格式不正确,则会出现一个“过滤器”"可以提供函数将数据强制转换为正确的形式。

    Hi@user3413540。您的问题是什么,我们可以提供什么帮助?当将JSON导出到csv时,假设一个数据段有10个字段。它将一个接一个地放置每一个数据段。虽然有一些较旧的数据段有7-8个字段,但当它逐个放置时,它在csv文件中不对齐。我正在寻找一种方法来检测是否有字段丢失,用空格填充以正确对齐所有内容。我认为Glynn的答案应该符合该描述。您好@user3413540。您的问题是什么,我们如何帮助您?将JSON导出到csv时,假设一条数据有10个字段。我t将一个接一个地连续放置每个数据段。虽然有一些较旧的数据有7-8个字段,但当它逐个放置时,csv文件中的字段不对齐。我正在寻找一种方法来检测是否缺少字段,用空格填充以正确对齐所有内容。我认为Glynn的回答应该符合该描述。