CSV-Doppel-Anführungszeichen-Escapezeichen in der Kodierung/CSV von Go
Bei der Arbeit mit CSV-Dateien in Go unter Verwendung des Kodierungs-/CSV-Pakets ist es wichtig, Folgendes zu tun Verstehen Sie, wie mit doppelten Anführungszeichen ("") umgegangen wird. Doppelte Anführungszeichen werden verwendet, um Zeichenfolgen einzuschließen, die Sonderzeichen wie Kommas enthalten, die andernfalls das CSV-Format zerstören können.
In Go ist es beim Schreiben in eine CSV-Datei wichtig, doppelte Anführungszeichen innerhalb von Zeichenfolgen zu maskieren. Das Paket „encoding/csv“ erledigt dies automatisch, indem es zusätzliche doppelte Anführungszeichen um alle doppelten Anführungszeichen in der Zeichenfolge einfügt. Dies ist Teil des CSV-Standards, der erfordert, dass doppelte Anführungszeichen für die Analysegenauigkeit maskiert werden.
Beispiel:
<code class="go">import ( "encoding/csv" "fmt" "os" ) func main() { f, err := os.Create("./test.csv") if err != nil { log.Fatal("Error: %s", err) } defer f.Close() w := csv.NewWriter(f) s := "Cr@zy text with , and \ and \" etc" record := []string{ "Unquoted string", s, } fmt.Println(record) w.Write(record) // Quote the string to escape double quotes record = []string{ "Quoted string", fmt.Sprintf("%q", s), } fmt.Println(record) w.Write(record) w.Flush() }</code>
Wenn das Skript ausgeführt wird, erfolgt die Ausgabe Zeigt die in doppelte Anführungszeichen eingeschlossenen Zeichenfolgen an:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string "Cr@zy text with , and \ and \" etc"]
Beim Lesen aus der CSV-Datei entfernt das Paket „encoding/csv“ jedoch automatisch alle maskierten doppelten Anführungszeichen. Dies bedeutet, dass die Zeichenfolgen ohne zusätzliche doppelte Anführungszeichen korrekt analysiert werden.
Beispiel für eine Lesefunktion:
<code class="go">func readCSV() { file, err := os.Open("./test.csv") defer file.Close() cr := csv.NewReader(file) records, err := cr.ReadAll() if err != nil { log.Fatal("Error: %s", err) } for _, record := range records { fmt.Println(record) } }</code>
Wenn die Lesefunktion aufgerufen wird, werden Sie Folgendes tun siehe Ausgabe:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string Cr@zy text with , and \ and " etc]
Dies zeigt, wie mit doppelten Anführungszeichen während Schreib- und Lesevorgängen umgegangen wird, um sicherzustellen, dass die Daten korrekt gespeichert und abgerufen werden.
Das obige ist der detaillierte Inhalt vonWie geht das Paket „encoding/csv' von Go mit dem Escapezeichen in doppelte Anführungszeichen beim Schreiben und Lesen von CSV-Dateien um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!