我正在使用 json2csv 來轉換多個 json 檔案,其結構如下
{
"address": "0xe9f6191596bca549e20431978ee09d3f8db959a9",
"copyright": "None",
"created_at": "None"
...
}
問題是我需要將多個 json 檔案放入一個 csv 檔案中。
在我的代碼中,我遍歷一個哈希檔案,使用該哈希呼叫 curl 并將資料輸出到 json。然后我使用json2csv將每個 json 轉換為 csv。
mkdir -p curl_outs
{ cat hashes.hash; echo; } | while read h; do
echo "Downloading $h"
curl -L https://main.net955305.contentfabric.io/s/main/q/$h/meta/public/nft > curl_outs/$h.json;
node index.js $h;
json2csv -i curl_outs/$h.json -o main.csv;
done
我用來-o將 json 輸出到 csv 中,但是它只是覆寫了以前的 json 資料。所以我最終只有一排。
我用過>>,這確實附加到 csv 檔案中。
json2csv -i "curl_outs/${h}.json" >> main.csv
但由于某種原因,它將資料的密鑰附加到
我也嘗試過的 csv 檔案的末尾
cat csv_outs/*.csv > main.csv
但是我得到相同的輸出。
如何將多個 json 檔案附加到一個主 csv 檔案?
uj5u.com熱心網友回復:
從影像和您的描述中還不能完全清楚有什么問題>>,但看起來 CSV 檔案可能沒有尾隨換行符,因此附加下一個檔案 ( >>) 開始直接在最后一行和列的末尾寫入(單元格)上一個檔案的資料。
我幾乎每天都處理 CSV,并且喜歡 GoCSV 工具。它的stack 子命令將執行顧名思義:堆疊多個 CSV,一個在另一個之上。
在您的情況下,您可以下載每個 JSON 并將其轉換為單個(中間)CSV。然后,最后,堆疊所有中間 CSV,然后洗掉所有中間 CSV。
mkdir -p curl_outs
{ cat hashes.hash; echo; } | while read h; do
echo "Downloading $h"
curl -L https://main.net955305.contentfabric.io/s/main/q/$h/meta/public/nft > curl_outs/$h.json;
node index.js $h;
json2csv -i curl_outs/$h.json -o curl_outs/$h.csv;
done
gocsv stack curl_outs/*.csv > main.csv;
# I suggested deleting the intermediate CSVs
# rm curl_outs/*.csv
# ...
我將回圈的最后一行更改json2csv -i curl_outs/$h.json -o curl_outs/$h.csv;為創建我之前提到的那些中間CSV。現在,gocsv 的 stack 子命令可以獲取這些中間 CSV 的串列并為您提供 main.csv。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/489598.html
