Python 處理含有中文的json

2021-09-27 01:23:02 字數 1387 閱讀 7630

01掛式空調

02普通椅子

02普通窗簾

03書桌-電腦桌-辦公桌

04微波爐-烤箱-洗碗機-消毒櫃

05電暖氣-加濕器-小太陽-電風扇-空氣淨化器

# coding: utf-8

import os

import sys

import json

import string

import re

ijson =

with open("position") as fp:

for line in fp:

label = line.strip().replace("\n", "")

print label

iobject = {}

iobject["id"] = re.sub("\d", "", label)

iobject["label"] = re.sub("[a-za-z0-9\!\%\[\]\,\。]", "", label)

print ijson

, , , , , ]}
unicodedecodeerror: 'utf8' codec can't decode bytes in position 0-1: invalid continuation byte
從背景中看出含有中文的json字串是不能dumps的,會丟擲unicodedecodeerror錯誤,這是因為 dumps 序列化時對中文預設使用的是ascii編碼,為了輸出中文咱們指定ensure_ascii=false:

print json.dumps(ijson, ensure_ascii=false)

, , , , , ]}
更坑爹的來了,會發現部分中文變成了?原因是博主為了分離數字和中文在網上找了個**:

iobject["id"] = re.sub("\d", "", label) 

iobject["label"] = re.sub("[a-za-z0-9\!\%\[\]\,\。]", "", label)

修改中文的提取方式:

pattern ="[^\u4e00-\u9fa5]+" 

regex = re.compile(pattern)

iobject["label"] = regex.findall(label)[0]

得到格式優美且中文顯示正確的json:

js判斷是否含有中文

第一種 exfcode 1functionischinese temp 2 第二種 exfcode 01functionischn str 02else 第三種 exfcode 01functionfuncchina 02else 第四種 exfcode 1functionischina s 2el...

python含有中文的list如何print出來

python2.x中 debug的時候list的中文,print出來是轉義字元。listnine 梨 橘子 蘋果 香蕉 listnine xe6 xa2 xa8 xe6 xa9 x98 xe5 xad x90 xe8 x8b xb9 xe6 x9e x9c xe9 xa6 x99 xe8 x95 x...

Python 對含有中文的txt進行讀取

參考 python讀取 寫入txt文字內容 一定要加encoding utf8 with open test.txt r encoding utf8 as f 以下為每一行單獨存放在乙個str,info為乙個list infor f.readlines 也可以全部存放在乙個str裡面 infor f...