有没有一种方法可以在json文件上循环,并将每个结构放入一个单独的文件中——Golang



所以我的程序是读取csv文件并将其转换为json。我已经能够做到这一点,并将json写入到一个文件中,但我希望能够从这个json文件中获取每个结构或对象并写入一个文件。

我已经附上了我的代码以更好地理解

package main
import (
"crypto/sha256"
"encoding/csv"
"encoding/json"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"strconv"
)
type NftRecord struct{
SeriesNumber     int    `json:"Series Number"`
Name             string `json:"Name"`
//TheDescriptor    string `json:"The Descriptor"`
//NewName          string `json:"New Name"`
Hash             string `json:"Hash"`
UUIDs            string `json:"UUIDs"`
Description      string `json:"Description"`
DriveLink        string `json:"Drive Link"`
}
func createRecordsList(data [][]string) []NftRecord{
var recordList []NftRecord
for i, line := range data{
if i > 0{
var rec NftRecord
for j, field := range line{
if j == 0{
var err error
rec.SeriesNumber, err = strconv.Atoi(field)
if err != nil{
continue
}
}else if j == 4{
rec.Name = field
}else if j == 7 {
rec.Description = field
}else if j ==6{
rec.UUIDs = field
}else if j == 5{
rec.Hash = field
}else if j == 8{
rec.DriveLink = field
} else if j == 13{
var err error 
if err != nil{
continue
}
}
}
recordList = append(recordList, rec)
}
}
return recordList
}
func main(){
f, err := os.Open("./scaler.csv")
if err != nil {
log.Fatal(err)
}
defer f.Close()
csvReader := csv.NewReader(f)
data, err := csvReader.ReadAll()
if err != nil {
log.Fatal(err)
}
recordList := createRecordsList(data)
jsonData, err := json.MarshalIndent(recordList, "", "  ")
if err != nil {
log.Fatal(err)
}
_ = ioutil.WriteFile("./test.json", jsonData, 0644)
fmt.Println(string(jsonData))
//hashing
hash := sha256.New()
if _, err := io.Copy(hash, f); err != nil {
panic(err)
}

sum := fmt.Sprintf("%x", hash.Sum(nil))
fmt.Println(sum)
}

我已经尝试了几乎所有我想的东西,我希望我能通过这个,因为我还有其他功能要添加。

这是下面的JSON

{
"Series Number": 301,
"Name": "wendy-the -banker",
"Hash": "D615D6E161E5F820A2B9F5C3ED3867BE0AA9F16DDCA00A0550E30E29A0B467AD",
"UUIDs": "587645e2-5ace-11ed-9b6a-0242ac120002",
"Description": "Wendy loves working in the bank, as she gets to meet different people.",
"Drive Link": "Link"
},
{
"Series Number": 302,
"Name": "uduak-the -dark horse",
"Hash": "5A63A94F455D367EC0AA39F57F827DDBECD3F335C817ED5A76460A2AB8E9068A",
"UUIDs": "58764862-5ace-11ed-9b6a-0242ac120002",
"Description": "Uduak looks innocent and has the whole apartment bugged",
"Drive Link": "Link"
},

在recordList上循环。对于每个元素,将其编组为JSON,并将其写入一个唯一的文件。您必须有一个唯一的文件命名方案,但要实现的一个微不足道的方案是计数器(例如1.json、2.json等(。

相关内容

  • 没有找到相关文章

最新更新