Python--处理含有中文的json

博主遇到处理含有中文的JSON时,遇到UnicodeDecodeError错误,由于dumps默认使用ascii编码。设置ensure_ascii=False可解决部分问题,但因使用正则提取数字和中文导致部分中文变为问号。修正正则表达式后,成功输出格式正确且包含中文的JSON。
摘要由CSDN通过智能技术生成

首先博主要介绍下写该博客的背景

1、博主要处理的中文字段是这样式的:

01挂式空调
02普通椅子
02普通窗帘
03书桌-电脑桌-办公桌
04微波炉-烤箱-洗碗机-消毒柜
05电暖气-加湿器-小太阳-电风扇-空气净化器

2、代码是这样式的

# coding: utf-8

import os
import sys
import json
import string
import re


ijson = {"objects":[]}
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)
        ijson["objects"].append(iobject)
    
print ijson

3、但是结果是这样式的

{'objects': [{'id': '01', 'label': '\xe6\x8c\xe5\xbc\x8f\xe7\xa9\xba\xe8\xb0\x83'}, {'id': '02', 'label': '\xe6\x99\xae\xe9\x9a\xe6\x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值