go读取url的csv文件

前言

读取url中的csv文件信息

错误写法

func main()  {
	str:="xxx/某大赛领奖名单.csv"
	resp,e:=http.Get(str)
	defer resp.Body.Close()
	if e!=nil{
		errorx.Wrap(e).Error()
		return
	}
	excelFile,createErr:=os.Create("test.csv")
	if createErr!=nil{
		errorx.Wrap(createErr).Error()
		return
	}
	body,readErr:=ioutil.ReadAll(resp.Body)
	s:=byteString(body)
	fmt.Println(s)	//这里发现是乱码的
	if readErr!=nil{
		errorx.Wrap(readErr).Error()
		return
	}
	num,writeErr:=excelFile.Write(body)
	if writeErr!=nil{
		errorx.Wrap(writeErr).Error()
		return
	}
	fmt.Println(num)
	if e:=excelFile.Close(); e!=nil{
		errorx.Wrap(e).Error()
		return
	}
	strs,csvErr:=ReadCSV("test.csv")	//发现在文件管理器中只有用excel打开才是正常的
	if csvErr!=nil{
		fmt.Println(errorx.Wrap(csvErr).Error())
	}
	fmt.Println(strs)
}

正确写法

func main() {
	resp, e := http.Get("xxx/某大赛获奖名单.csv")
	if e != nil {
		panic(e)
	}
    if resp == nil {
        panic("resp nil")
    }

    if resp.Body == nil {
        panic("body nil")
    }

    buf, e := ioutil.ReadAll(resp.Body)
    if e != nil {
        panic(e)
    }

    r := csv.NewReader(bytes.NewReader(buf))

    records, e:= r.ReadAll()
    if e!=nil {
        panic(e)
    }

    fmt.Println(records)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值