国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

這篇具有很好參考價(jià)值的文章主要介紹了記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在項(xiàng)目里剛好有3個(gè)服務(wù),同一個(gè)網(wǎng)關(guān)內(nèi)層的3個(gè)服務(wù),兩個(gè)php的,一個(gè)golang的,為了提高負(fù)載以及進(jìn)行分流,部分客戶的接口調(diào)用會(huì)被網(wǎng)關(guān)自動(dòng)分配到go服務(wù)。

恰好為了測(cè)試,我寫了一個(gè)全量用戶的生產(chǎn)、測(cè)試環(huán)境調(diào)用接口返回結(jié)果進(jìn)行對(duì)比的腳本,于是發(fā)現(xiàn)了題中的問題:兩個(gè)php服務(wù)里的接口返回值寫入xlsx后,直接copy出來(lái)是正常的json串,golang的接口返回值copy出來(lái)變成雙重引號(hào)如圖

記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449226.html

排查過(guò)程:

1、先通過(guò)python的requests請(qǐng)求接口直接打印出返回值,看看是否是兩個(gè)雙引號(hào),結(jié)果發(fā)現(xiàn)php跟go服務(wù)都是正常的json串。

?

2、繼續(xù)排查,猜想問題會(huì)不會(huì)出現(xiàn)編碼傳輸格式上,于是對(duì)比php跟go接口響應(yīng)標(biāo)頭。

  php服務(wù)響應(yīng)頭如下:

  記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

  go服務(wù)應(yīng)頭如下

  記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

  go跟php響應(yīng)頭的差別只在于兩點(diǎn):php多了TimeStamp,Content-Type里面多了charset=utf-8。

  首先排除TimeStamp,從名稱上就可以看出來(lái)不會(huì)對(duì)返回值格式或內(nèi)容有任何影響;

  然后嘗試用flask編寫兩個(gè)接口,Content-Type里面分別為application/json、application/json; charset=utf-8,寫入excel后發(fā)現(xiàn)并沒有任何不同。

?

3、響應(yīng)頭也沒問題,繼續(xù)猜想會(huì)不會(huì)是go服務(wù)代碼缺陷,接口在return response之前并沒有序列化,而是直接返回了object對(duì)象

  我們先了解一個(gè)概念:序列化與反序列化。

  序列化是把程序?qū)ο筠D(zhuǎn)換為字節(jié)序列的過(guò)程,反序列化就是把字節(jié)序列恢復(fù)為程序?qū)ο蟮倪^(guò)程。

  因?yàn)椴煌目蛻舳?、服?wù)端可能使用的語(yǔ)言不同,為了兼容都是用序列化之后的數(shù)據(jù)進(jìn)行傳輸,比如前端js將頁(yè)面參數(shù)序列化之后傳遞給后端java服務(wù)。

  開始實(shí)驗(yàn),本地flask直接返回字典{"username": username, "password": password},寫入excel的居然真的出現(xiàn)了兩個(gè)雙引號(hào)。

  記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

?

4、于是讓開發(fā)排查代碼里是不是沒有作序列化,但是出人意料的是,go代碼里是做了序列化才返回的。

  所以上面的猜想都不成立,研究一度陷入僵局,直到...

?

5、偶然注意到copy出來(lái)的返回值尾巴上有個(gè)莫名其妙的換行。

  記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

  根據(jù)以前經(jīng)常寫json數(shù)據(jù)入csv、xlsx文件的經(jīng)驗(yàn),就算是格式化后加了多個(gè)引號(hào)的json數(shù)據(jù)(例如pandas的to_csv方法里的quoting參數(shù)即可控制是否加引號(hào)),也不可能加換行符。

  所以猜想會(huì)不會(huì)是返回值多了個(gè)隱形的換行符,然后在pacharm的cmd里調(diào)一下接口看看,果然go服務(wù)返回體尾巴上換行了,而php則不會(huì)

  記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題

?

6、于是在寫入excel之前把返回值rstrip()一下做最后的確認(rèn),結(jié)果從excel復(fù)制出來(lái)的數(shù)據(jù)真的沒有多重引號(hào)了。

?

至此,揪出來(lái)這個(gè)go服務(wù)的bug!

?

到了這里,關(guān)于記一次排查:接口返回值寫入excel后,從單元格copy出來(lái)的數(shù)據(jù)會(huì)帶有多重引號(hào)的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 記一次線上BUG排查過(guò)程

    記一次線上BUG排查過(guò)程

    1. 線上遇到一個(gè)非常奇怪的bug,為一個(gè)用戶分配業(yè)務(wù)線類型后,該用戶登錄時(shí),提示502,但其它的用戶登錄完全是正常的 2. 問題現(xiàn)象 3. 排查思路 先去看線上日志,看是否有error,但日志里邊這個(gè)接口200正常返回 本地debug,也復(fù)現(xiàn)一樣問題,在分配角色類型超過(guò)22個(gè)總數(shù)時(shí)就報(bào)

    2024年02月09日
    瀏覽(30)
  • 記一次kafka消息積壓的排查

    kafka消息積壓報(bào)警,首先進(jìn)行了自查,這個(gè)現(xiàn)象頻頻出現(xiàn),之前每次都是先重新分配分區(qū)或者回溯(消息可丟棄防止大量積壓消費(fèi)跟不上)。 根據(jù)手冊(cè)首先排查下消息拉取是否正常,看到了消息拉取線程是waiting狀態(tài),然后看到kafka這塊邏輯是消費(fèi)線程阻塞了拉取線程。 對(duì)比了

    2024年03月24日
    瀏覽(22)
  • 記一次docker啟動(dòng)失敗的問題排查

    記一次docker啟動(dòng)失敗的問題排查

    以前在虛擬機(jī)上安裝了一個(gè)docker,可以正常使用的,今天突然宿主機(jī)機(jī)器內(nèi)存條壞了,換了內(nèi)存條后啟動(dòng)機(jī)器,再使用 systemctrl start docker 啟動(dòng)docker,最后使用 docker start containID 啟動(dòng)報(bào)錯(cuò) 網(wǎng)上沒有找到相應(yīng)的描述,仔細(xì)分析看是 write /proc/sys/kernel/shmmni 報(bào)錯(cuò)了,錯(cuò)誤原因是 in

    2024年02月14日
    瀏覽(27)
  • 【記一次線上事故的排查思路】- CPU飆升問題排查

    【記一次線上事故的排查思路】- CPU飆升問題排查

    由于項(xiàng)目排期較緊,臨時(shí)從其他組調(diào)來(lái)三個(gè)開發(fā)資源幫我一起做項(xiàng)目,難免上線的時(shí)候大家的需求一塊上線。 問題來(lái)了,上線三天后,線上CPU總是莫名奇妙的突然飆升,飆升后CPU并未降下來(lái),而是一直處在高點(diǎn)。 由于是線上導(dǎo)致的問題,CPU超限后,會(huì)自動(dòng)重啟項(xiàng)目,未能保

    2024年01月23日
    瀏覽(27)
  • ????網(wǎng)絡(luò)之謎:記一次失敗排查的故事

    ????網(wǎng)絡(luò)之謎:記一次失敗排查的故事

    在這篇文章中,我們將詳細(xì)探討導(dǎo)致故障的可能原因以及解決方案,以便更好地理解故障排查的復(fù)雜性和艱巨性,尤其是當(dāng)出現(xiàn)與本次故障表現(xiàn)相似的問題時(shí)。 首先,讓我們回顧一下故障的表現(xiàn)。在客戶端調(diào)用接口時(shí),發(fā)現(xiàn)一直在轉(zhuǎn)圈等待,而服務(wù)器端卻收到了請(qǐng)求并在返回

    2024年02月05日
    瀏覽(26)
  • 記一次Native memory leak排查過(guò)程

    記一次Native memory leak排查過(guò)程

    路由計(jì)算服務(wù)是路由系統(tǒng)的核心服務(wù),負(fù)責(zé)運(yùn)單路由計(jì)劃的計(jì)算以及實(shí)操與計(jì)劃的匹配。在運(yùn)維過(guò)程中,發(fā)現(xiàn)在長(zhǎng)期不重啟的情況下,有TP99緩慢爬坡的現(xiàn)象。此外,在每周例行調(diào)度的試算過(guò)程中,能明顯看到內(nèi)存的上漲。以下截圖為這兩個(gè)異常情況的監(jiān)控。 TP99爬坡 內(nèi)存爬坡

    2024年02月11日
    瀏覽(26)
  • 記一次Apache HTTP Client問題排查

    記一次Apache HTTP Client問題排查

    通過(guò)日志查看,存在兩種異常情況。 第一種:開始的時(shí)候HTTP請(qǐng)求會(huì)報(bào)超時(shí)異常。 762663363 [2023-07-21 06:04:25] [executor-64] ERROR - com.xxl.CucmTool - CucmTool|sendRisPortSoap error,url:https://xxxxxx/realtimeservice/services/RisPort org.apache.http.conn.HttpHostConnectException: Connect to xxx [/xxx] failed: 連接超時(shí) 第二種

    2024年02月12日
    瀏覽(28)
  • 記一次javaMetaspace導(dǎo)致CPU200%的排查

    insertMotionDataByWxCallBack方法并發(fā)多(其實(shí)也沒多少,可能就3個(gè)?)就導(dǎo)致CPU200%了,本地沒法復(fù)現(xiàn)。 看報(bào)錯(cuò)是:java.lang.OutOfMemoryError: Metaspace,剛開始的時(shí)候眼挫,忽略了后面的Metaspace,只看到了OutOfMemoryError,就各種找代碼問題。 https://arthas.aliyun.com/doc/install-detail.html 然后發(fā)現(xiàn)

    2023年04月24日
    瀏覽(24)
  • 記一次Flink通過(guò)Kafka寫入MySQL的過(guò)程

    記一次Flink通過(guò)Kafka寫入MySQL的過(guò)程

    一、前言 總體思路:source --transform --sink ,即從source獲取相應(yīng)的數(shù)據(jù)來(lái)源,然后進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將數(shù)據(jù)從比較亂的格式,轉(zhuǎn)換成我們需要的格式,轉(zhuǎn)換處理后,然后進(jìn)行sink功能,也就是將數(shù)據(jù)寫入的相應(yīng)的數(shù)據(jù)庫(kù)DB中或者寫入Hive的HDFS文件存儲(chǔ)。 思路: pom部分放到最后面。 二

    2024年01月24日
    瀏覽(27)
  • 記一次jedis連接池頑固問題排查與修改

    記一次jedis連接池頑固問題排查與修改

    這輩子不想再看到j(luò)edisBrokenPipe!! ? 測(cè)試環(huán)境運(yùn)行16天后報(bào)錯(cuò)信息: 05:42:32.629 [http-nio-8093-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,175] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is redis.clients.jedis.exceptions.JedisCon

    2023年04月21日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包