最近寫了個腳本,幫忙處理下數(shù)據(jù)。遇到一個神奇的問題記錄一下。
有個場景需要把 csv 文件里的數(shù)據(jù),轉(zhuǎn)換成 json格式。
代碼類似如下:
import csv
import json
file_name = "xxx.csv"
with (open(file_name, 'r') as csvfile):
csvreader = csv.reader(csvfile)
result = []
for row in csvreader: # 遍歷每一行
res = {}
res["a"] = row[0]
res["b"] = row[1]
result.append(res)
print(result)
看似簡單的算法,print 出來的數(shù)據(jù)卻偶現(xiàn)丟失。而且出現(xiàn)不是很規(guī)律??粗⒉幌袷茄h(huán)里的 bug。
解決方案:
寫到文件里,不要直接 print。
f = open('file_name.json', 'w+')
f.write(json.dumps(result, ensure_ascii=False))
f.close()