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

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

使用 Go 正確解析 JSON 數(shù)據(jù)時(shí)出錯(cuò)

使用 Go 正確解析 JSON 數(shù)據(jù)時(shí)出錯(cuò)

Go
Qyouu 2021-08-16 10:29:25
我是 Go 的新手,并嘗試使用 github 中的庫將 JSON 解析為 CSV。https://github.com/jehiah/json2csv但是我遇到了這個(gè)問題:https : //github.com/jehiah/json2csv/issues/22,作者沒有回復(fù)。我意識(shí)到如果我們將以下 JSON 作為 json.input 提供給文件:{"user": {"name":["jehiah, mike, semo"], "password": "root"}, "remote_ip": "127.0.0.1", "dt" : "[20/Aug/2010:01:12:44 -0400]"}{"user": {"name":["jeroenjanssens", "jeroen2", "jero55"], "password": "123"}, "remote_ip": "192.168.0.1", "dt" : "[20/Aug/2010:01:12:44 -0400]"}{"user": {"name":"markdata", "password": ""}, "remote_ip": "76.216.210.0", "dt" : "[20/Aug/2010:01:12:45 -0400]"}現(xiàn)在,如果我嘗試將其用作命令: go run main.go -k user.name -i input.json -o output.json它返回以下輸出:"[jehiah, mike, semo]"[jeroenjanssens jeroen2 jero55]markdata但如 opend 發(fā)布中所述,我期待響應(yīng)為:jehiah, mike, semojeroenjanssens, jeroen2, jero55markdata我猜這是由于以下行而發(fā)生的:https : //github.com/jehiah/json2csv/blob/master/main.go#L110無論如何在閱讀該行時(shí)刪除逗號(hào)。您能否就如何實(shí)現(xiàn)上述預(yù)期輸出提出建議?
查看完整描述

2 回答

?
catspeake

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

這里有幾個(gè)問題在起作用:

  1. JSON 定義的結(jié)構(gòu)并不是都可以用 CSV 表示的,例如:

    • 對(duì)象例如 {"name":"john"}

    • 數(shù)組例如 ["john", "mike", "sam"]

  2. 沒有 CSV 標(biāo)準(zhǔn)。嗯,有 RFC-4180,但大多數(shù) CSV 編碼器/解碼器不遵守它,因?yàn)?Microsoft。

  3. 您使用的包編碼很差。

CSV 實(shí)現(xiàn)之間的主要區(qū)別之一是報(bào)價(jià)處理??紤] JSON 字符串:"\"Hello, world!\"".

根據(jù)我們的編組器,我們最終可以得到字符串的以下任何 CSV 表示:

  • """Hello, world!"""

  • "\"Hello, world!\""

  • '"Hello, world!"'

一些編碼器甚至?xí)D(zhuǎn)義字符串內(nèi)的逗號(hào)。您描述的包通過完全跳過逗號(hào)來規(guī)避這個(gè)問題。如果你問我,這是一個(gè)非常糟糕的設(shè)計(jì)決定。

你需要的一切都在 Go 的標(biāo)準(zhǔn)庫中:

  1. encoding/json

  2. encoding/csv



查看完整回答
反對(duì) 回復(fù) 2021-08-16
  • 2 回答
  • 0 關(guān)注
  • 285 瀏覽

添加回答

舉報(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)