2015-12-21 115 views
0

我從MySQL數據庫獲取數據並寫入CSV文件。 這看起來像這樣:Python將數據庫寫入csv

with open("output.csv", "ab+") as csv_file: 
     csv_writer = csv.writer(csv_file) 
     csv_writer.writerows(db_cursor) 

這適用於普通列。但是,我有一個類型爲LONGTEXT的列,其中包含JSON數據。

當創建CSV文件時,csv_writer會在JSON中的每個鍵值附近添加額外的引號。

即,如果我的列有該值: {"key":"value"}

的output.csv文件有: "{""key"" : ""value""}"

我要的是: "{\"key\" : \"value\"}"

如何實現這一目標?

(我要在Ruby應用程序再次讀取該文件並重新創建JSON。有了這筆額外的報價,我不知道我該如何處理!)

回答

4

指定輸出應該如何格式化,您在創建作家時需要傳遞正確的formatting parameters,或創建自己的方言並使用它。

在你的情況,你可能會想是這樣的:

csv_writer = csv.writer(csv_file, 
         doublequote=False, 
         escapechar='\\', 
         quoting=csv.QUOTE_NONNUMERIC) 

這將使用默認值(excel)方言,而覆蓋所提供的參數。

+0

謝謝。這個伎倆。 – gaganbm