第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

CSV-Parser 似乎無法正確解析換行數(shù)據(jù)

CSV-Parser 似乎無法正確解析換行數(shù)據(jù)

HUX布斯 2022-06-09 19:07:08
是的,我知道我應(yīng)該有更好的數(shù)據(jù),如果沒有任何效果,我會(huì)修復(fù)我的數(shù)據(jù),但我想知道是否有任何方法可以讓 csv-parser 解析器解析"United States ofAmerica",140640,17987,2398,286,Local transmission,0進(jìn)入{Country: United States of America... blah blah... blah blah... blah blah... blah blah}fs.createReadStream("./csv/03312020.csv")    .pipe(        csv([            "Country",            "Total",            "TotalNew"        ])    )    .on("data", row => {        console.log(row.Country);        let result = contains(row.Country);        if (result !== undefined) {            row.Date = today;            row.id = result + "-" + today;            if (db.dates.get(row.id) === undefined) db.dates.create(row);        }    })    .on("end", () => {        console.log("CSV file successfully processed for", today);    });我認(rèn)為 csv-parser 會(huì)看到有一個(gè)引號(hào)并將其包裝為一個(gè)“列”,但顯然它沒有。除了重新解析我的 CSV 文件本身之外,還有更好的方法來解析這些數(shù)據(jù)嗎?
查看完整描述

1 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以做的是將該文件拆分為行,然后加入具有奇數(shù)個(gè) " 字符的行。


我的腳本還處理 \n 字符在單行數(shù)據(jù)中多次出現(xiàn)的情況。

這是基于這樣一個(gè)事實(shí),即只有多行行的第一行和最后一行會(huì)有奇數(shù)個(gè) " 字符。


您可以使用我的腳本重新格式化您的文件,然后將其輸入您的 csv 解析器。


const example1 = `"United States of

America",140640,17987,2398,286,Local transmission,0`;


console.log(reformatCsv(example1));


const example2 = `"United States of

America",140640,17987,2398,286,"Local

transmission",0`;


console.log(reformatCsv(example2));



// @param file: string

function reformatCsv(file)

{

    const lines = file.split('\n');


    let reformattedRows = [];


    const parts = [];


    for (const line of lines)

    {

        const quoteMatches = line.match(/"/g);

        const isEvenNumberOfQuotes = !quoteMatches || quoteMatches.length % 2 == 0;

        const noPartialRowsYet = !parts.length;


        if (noPartialRowsYet)

        {

            if (isEvenNumberOfQuotes) // normal row

            {

                reformattedRows.push(line);

            }

            else // this is a partial row

            {

                parts.push(line);

            }

        }

        else // continuation of a partial row

        {

            parts.push(line);

            if (!isEvenNumberOfQuotes) // we got all of the parts

            {

                // join the parts

                // I replace \n with a space character, but you don't have to

                reformattedRows.push(parts.join(' '));

            }

        }

    }


    return reformattedRows.join('\n');


查看完整回答
反對 回復(fù) 2022-06-09
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)