unicodepythonjson
① python中怎樣將unicode轉換成原來的中文
python默認就是unicode存儲。如果是從文件讀取的,在open的參數中指定encoding關鍵字參數就行。如下:
#coding=utf-8/importjson /defLoadQuestion(): /f=open("test.json",'r') qas=json.load(f) question=qas['documents'] /returnquestion/t=LoadQuestion() /printstr(t).decode("unicode-escape")
拓展資料專:
通常python2時所屬有IO讀寫都是byte方式。也就是編碼後的。java也是這樣子。只有python3還有某些特定的模塊才會自動將byte重新轉換成unicode
在python2里的確可以使用s.decode('gbk','ignore')之類的變成unicode。不過在python3里應該是這樣子, s.encode('gbk','ignore')這樣就變成了byte
如果你喜歡 utf-8,可以s.encode(『utf-8','ignore')和s.decode(『utf-8','ignore')
② Python json unicode轉中文
importsys
reload(sys)
sys.setdefaultencoding("utf-8")
result=[[u'9.6',u'50'],1,True,u'1292052',[u'u72afu7f6a',u'u5267u60c5'],[u'u7f8eu56fd'],u'',u'1994-09-10',15,725531,u'9.6']
f=open('data.csv','w')
foriinresult:
iftype(i)islist:
forjini:
iftype(j)==intortype(j)==floatortype(j)==bool:
j=str(j)+','
else:
j=j.encode('gbk')+','
printj,
print>>f,j,
else:
iftype(i)==intortype(i)==floatortype(i)==bool:
i=str(i)+','
else:
i=i.encode('gbk')+','
printi,
print>>f,i,
f.close()
③ Python如何將Unicode中文字元串轉換成 string字元串
Unicode字元串可以用多種方式編碼為普通字元串,假設unicodestring = u"Hello world",依照所選擇的編碼(encoding),如下:
1、#將Unicode轉換成普通的Python字元串:"編碼(encode)"。
(3)unicodepythonjson擴展閱讀:
Python轉換字元和字元串的原因:為了處理不適合用ASCII字元集表示的數據。
在以ASCII碼為中心的語言和環境中,位元組和字元被當做相同的事物。由於一個位元組只能有256個值,這些環境就受限為只支持256個字元Unicode碼,另一方面,有數萬個字元,那意謂著每個Unicode字元佔用多個位元組,因此,你需要在字元和位元組之間作出區別。
(1)UTF-8編碼能處理任何的Unicode字元。它也是與ASCII碼向後兼容的,因此一個純粹的ASCII碼文件也能被考慮為一個UTF-8文件,而且一個碰巧只使用ASCII碼字元的 UTF-8文件和擁有同樣字元的ASCII碼文件是相同的。
這個特性使得UTF-8的向後兼容性非常好,尤其使用較舊的Unix工具時。UTF-8 無疑地是在 Unix上的占優勢的編碼。它主要的弱點是對東方文字是非常低效的。
(2)UTF-16編碼在微軟的操作系統和Java環境下受到偏愛。它對西方語言是比較低效,但對於東方語言是更有效率的。一個UTF-16 的變體有時叫作UCS-2 。
(3)ISO-8859編碼系列是256個字元的ASCII碼的超集。他們不能夠支援所有的Unicode碼字元;他們只能支援一些特別的語言或語言家族。
ISO-8859-1,也既Latin-1,包括大多數的西歐和非洲語言,但是不含阿拉伯語。ISO-8859-2,也既Latin-2,包括許多東歐的語言,像是匈牙利語和波蘭語。
④ Python,json.loads(r.text)一直出錯
json裡面的字元串都是unicode(見http://json.org/),所以在dd中不可能出現utf-8的kv。loads函數的參數encoding是指定字元串j_str的編碼內。將字元串j_str讀到容dd時,會按這個編碼進行解碼成unicode。
1dd = json.loads(j_str, encoding='utf-8') #dd中的字元串都是unicode
⑤ python一行式解析json怎麼避免中文轉化為unicode編碼
比如有一個抄json文件test.json,內容為:
{"one":{"two":"中文"}}
想要分層次的查看,於是:
cat test.json | python3 -m json.tool
然後輸出為:
{ "one": { "two": "\u4e2d\u6587"
}
}
然而中文已經轉換成了unicode編碼,如何避免這種轉換?
必須轉!
json是用於交換數據的,Unicode等 多位元組字元 會在傳輸過程中出錯。
"\u4e2d\u6587" ,嚴格的說,這不是utf格式編碼,而是 unicode轉義。
更新
用repr()保存json對象
>>> import json>>> j = json.loads('{"one":{"two":"中文"}}')>>> print(j)
{'one': {'two': '中文'}}>>> j['one']['two']'中文'>>> d =json.mps(j)>>> print(d)
{"one": {"two": "\u4e2d\u6587"}}>>> r = repr(j)>>> print(r)
{'one': {'two': '中文'}}>>> with open('test.json','w') as w:
w.write(r)
⑥ python json怎麼修改json數據
Json簡介:Json,全名 JavaScript Object Notation,是一種輕量級的數據交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的數據格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。Python的官網網址:https://docs.python.org/2/library/json.html?highlight=json#mole-json
Json API 使用:python在版本2.6之前,是需要先下載包,安裝後才能使用的,有點類似現在的RF內使用SeleniumLibrary一樣。但是在2.6中,官方文檔(https://docs.python.org/2.6/whatsnew/2.6.html)明顯指出,「有一些重要的新的軟體包添加到了標准庫,比如multiprocessing 和json,但是跟python 3比,2.6的這些包不會引進更多的新功能。"於是安裝python2.6以上版本的童鞋,可以不需要下載json包,直接在所需的地方就import json 即可使用,在安裝目錄下的Lib 下,看到這兩個包(點進去仔細閱讀這些源碼,會有更多的收獲,)如下文所示:
⑦ python2 json 轉義問題
s="\xe2\x99\xab"
c=s.decode('string_escape')
print(c)
⑧ python中json.loads()為什麼都變成unicode了加了encoding='utf-8'也沒用。我希望得到utf8的k-v,怎麼做
json裡面的字元串都是unicode(見http://json.org/),所以在dd中不可能出現utf-8的kv。loads函數的參數encoding是指定字元串專j_str的編碼屬。將字元串j_str讀到dd時,會按這個編碼進行解碼成unicode。
dd=json.loads(j_str,encoding='utf-8')#dd中的字元串都是unicode
⑨ python在mysql資料庫中執行插入操作,插入json.mps後的包含中文的json對象,資料庫中文顯示為Unicode
插入時保證是中文就行了,資料庫建議用utf8。
⑩ 為什麼python運行json會提示JsonDecodeError
是編碼的問題
按Ctrl+c復制你寫的代碼,新建一個文檔,再粘貼,不要設置編碼,再運行,就OK了
或者將編碼設成GBK