1. 程式人生 > >python 輸出JSON型別資料時遇到的編碼問題(utf8,unicode)

python 輸出JSON型別資料時遇到的編碼問題(utf8,unicode)

開發背景

目前已經用scala開發了RESTFUL API來接收傳送來的使用者聊天資料,正在在使用python開發kafka的consumer消費kafka中的資料,每天儲存成一個檔案,然後載入到hive中。python版本是2.7

遇到的問題

  1. 傳送中文時的亂碼問題
    首先在在測試RESTFUL API 的時候就遇到了後臺傳送的中文資訊亂碼問題,這個問題在java或者scala端新增上正確的頭部資訊後搞定了

    HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
  2. 消費kafka資訊時的解碼問題
    然後在使用python將訊息消費出來時也出現了編碼問題,並不能正確的將中文內容儲存下來,例如 “content” : “\u4f60\u60f3\u5565\u5462”

    除錯排查後發現主要原因在使用json.dumps方法是 沒有指明 ensure_ascii=False(預設為True)
    當然還要宣告python的編碼

    reload(sys)
    sys.setdefaultencoding('utf-8')

    否則會有這個錯誤

    'ascii' codec can't decode byte 0xe6 in position 197: ordinal no
    t in
    range(128)

參考資料

相關推薦

python 輸出JSON型別資料遇到的編碼問題(utf8,unicode)

開發背景 遇到的問題 參考資料 開發背景 目前已經用scala開發了RESTFUL API來接收傳送來的使用者聊天資料,正在在使用python開發kafka的consumer消費kafka中的資料,每天儲存成一個檔案,然後載入到h

pythonjson格式資料輸出實現方式(無unicode編碼輸出形式)

在 http://blog.csdn.net/5iasp/article/details/23338039 的基礎上改進了下 不多說了,直接貼程式碼: # _*_coding:utf-8 _*_ import sys reload(sys) sys.setdefaulten

python輸出不換行(同一行輸出不同型別資料)

不同型別的資料輸出在同一行,在行尾加","即可: #! -*- coding:utf-8 -*- #加這一行可以在檔案中使用中文 print 'This is a string + int', pr

Pythonjson格式資料編碼和解碼

python從2.6版本開始內建了json資料格式的處理方法。 1、json格式資料編碼 在python中,json資料格式編碼使用json.dumps方法。#!/usr/bin/env python #coding=utf8 import json users

Python讀寫txt檔案編碼問題

  這個問題來自於一個小夥伴,他在處理中文資料時需要先把裡面的文字過濾然後分詞,因為裡面有許多符號,不僅是中文標點符號,還有✳,emoji等奇怪的符號。   正常情況下,中文的str經過encode('utf-8')變成bytes,然後bytes經過decode('utf-8')變回中文。   原始檔案是

thinkphp 模板格式化輸出datetime型別資料

原理 一,PHP時間戳函式獲取指定日期的unix時間戳 strtotime(”2009-1-22″) 示例如下: echo strtotime(”2009-1-22″) 結果:1232553600 說明:返回2009年1月22日0點0分0秒時間戳 二,PHP時間戳函式獲

mybatis增加/更新日期型別資料String到date的轉化

實體裡面是String,但是表裡是date,臨時轉化 <update id="updateInventory" parameterType="com.docc.model.Inventory"> update BUS_INVENTORY set orgcode 

MySQL JSON 型別資料操作

1、Java 中動態擴充套件欄位,會導致資料庫表被鎖,在MySQL 5.7.8版本之前,因為MySQL不能直接操作JSON型別資料,可以將一個欄位設定成varchar型別,裡面存放JSON格式資料,這樣在需要擴充套件欄位時,不需要修改表結構; 2、mysql自5.7.8版本開始,就支援了json結構的資

【MyBatis】postgresql中json型別資料問號?問題

問題描述       有個需求是需要判斷某個text是否在json型別資料中,因此打算採用?操作符來實現。在Navicat中嘗試確實是可以的。如下:       因此,我在mapper檔案中就加入如下方法,但執行卻報錯:org.postgresql.util.

Struts2+Jquery實現ajax並返回json型別資料

摘要: 主要實現步驟如下: 1、JSP頁面使用指令碼程式碼執行ajax請求 2、Action中查詢出需要返回的資料,並轉換為json型別模式資料 3、配置struts.xml檔案 4、頁面指令碼接受並處理資料  網上看到很多關於Struts2+ajax+jquery+jso

pythonJSON資料解析

JSON 是一種輕量級的資料交換格式 其中有兩個函式 json.dumps(): 對資料進行編碼。 json.loads(): 對資料進行解碼。 其中需要注意轉換後的資料型別是什麼(這個由於有點過多需要自己去查詢) 下面是實列的運用 對資料解碼 import

JSON——後端向前臺 select 標籤傳遞 list json型別物件,前臺的處理

獲取 後臺的list json 物件 1.格式化 data 的json 資料         var json= JSON.stringify(data); 2.轉 json 資料      

Python 輸出JSON物件陣列&寫入資料到MySQL

準備資料,放到列表中 import re input = open('C:\\Users\\Administrator\\Desktop\\e.txt','r') text=input.read(

關於 Ajax中返回json型別資料為什麼使用? eval()

以下是本人從多年參與專案開發總結出來的一點點經驗,如果你有不同的看法,請回復我,咱們可以研究研究        1.關於eval(對於伺服器返回的JSON字串,如果jquery非同步請求沒做型別說明,

pythonjson型別的字串轉換成字典 使用demo

我們從網頁上抓取的很多資料都是json格式,儲存下來也就是字串格式,我們這時候如果使用字串拼接或者正則表示式在json字串中尋找資訊是比較麻煩的。把json字串轉換成python中的字典,然後再使用字典查詢。 import json ''' json:一種儲存資料的格式 作用:可以儲存本地的js

Python處理json格式資料

(一)JSON 資料格式1.JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。JSON採用完全獨立於語言的文字格式,這些特性使JSON成為理想的資料交換語言。易於人閱讀和編寫,同時也易於機器解析和生成。 2.JSON資料格式是資料傳

JSON型別資料轉換為物件,並排除指定的屬性.JAVA將購物車資料寫入到cookie中

public void addCart(HttpServletRequest request, HttpServletResponse response, Long skuId, Integer quantity) { //獲取所有co

java處理json型別資料--阿里巴巴fastjson api常用方法實戰

fastjson介紹 最近工作上經常需要解析json型別資料以及java物件到json型別的互轉,特地研究了下阿里巴巴的fastjson,這個是國內用的 比較多的json轉換api,還有其他的入jackson,谷歌的Gson,後續我再介紹。 廢話少說,上例子。 使用方式

node如何接收ajax post方式傳來的json型別資料

最近學了node,對於post請求的資料都是用body-parser中介軟體進行處理,但是今天用ajax傳資料的時候發生了錯誤,錯誤如下: 傳過來的值直接被解析成一個key,改了好久才解決,所以把這個問題記錄一下 1.form表單提交時 初入門no

sqlite查詢日期型別資料出現問題的解決方法

 SQLite資料庫裡面有一列是日期格式資料。通過C#查詢語句查詢該資料,會報一個錯誤,不識別這種日期格式資料。那麼對於該資料庫如何通過C#語句來查詢呢? 經過查詢資料,發現在插入資料時,需要用date.ToString("s"),否則插入的資料不是正確的日期格式,自然查詢