У меня есть mysql дамп CSV-файл, содержащий два столбца, json1 и json2, оба столбца являются JSON объектами строковых представлений. Итак, строка csv выглядит следующим образом:
"{"field1":"value","field2":4}","{"field1":"value","field2":4}"
Мне нужно десериализовать эти две строки, а затем разархивировать значения от JSON до Go. Я застрял на первом этапе. У меня проблемы с ,
, поскольку в самих строках JSON есть ,
s, поэтому читатель разбивает каждую строку на неправильное количество полей, а не на два при необходимости.
Вот мой полный код:
reader := csv.NewReader(csvFile)
reader.LazyQuotes = true //allows non-doubled quotes to appear in quoted fields
for {
record, err := reader.Read()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
fmt.Printf("json1: %s json2 %s\n", record[0], record[1])
}
Что я пробовал
Я попытался установить разделитель csv на }","{
и затем добавить соответствующий }
и {
к результирующим строкам, но, помимо того, что они подвержены ошибкам, некоторые строки имеют NULL
json1 или json2.
Наблюдения
I пользуюсь - golang 1.12.1