python json编码及字符串的处理(间隔n个字符插入一个换行符)

使用Python处理json文件时,经常会遇到一些编码的问题。本次分享一下,python加载json文件,编码以及序列化。

1.需求:给定一个字符串,对字符串遍历,每隔16个字符插入一个换行符,具体实现代码如下:
import json
import re
import sys
import os
s="愿你合上笔盖的刹那,有着侠客收剑入鞘的骄傲"
s=re.sub(r"(.{16})","\\1\n",s)
print(s)
2.加载json文件并将其序列化为对象,并更改对象的question属性,重新写入新的json对象
import json
import re
import sys
import os

file=open("temp.json","r",encoding='utf-8')
info=json.load(file)
listArray=info["listArray"]
it=iter(listArray)
for x in it:
    s=x["question"]
    s=re.sub(r"(.{16})","\\1\n",s)
    x["question"]=s
tempArray=listArray
fp=open("answer.json",'w+',encoding='utf-8')
fp.write(json.dumps(tempArray,ensure_ascii=False))
3.temp.json 文件如下:
{
        "listArray":[
        {
            "ID": 1,
            "question": "请问“匈奴不灭,何以为家”表达了哪位将军的爱国情怀?",
            "A": "卫青",
            "B": "霍去病",
            "C": "李广",
            "correct": "B"
        },
        {
            "ID": 2,
            "question": "请问诗句“朔方烽火照甘泉,长安飞将出祁连。”中的“飞将”指的是?",
            "A": "卫青",
            "B": "李广",
            "C": "马援",
            "correct": "B"
        },
        {
            "ID": 3,
            "question": "请问诗句“出身仕汉羽林郎,初随骠骑战渔阳。”中的“骠骑”是指?",
            "A": "霍去病",
            "B": "卫青",
            "C": "李广",
            "correct": "A"
        },
        {
            "ID": 4,
            "question": "请问诗句“伏波惟愿裹尸还”中“伏波”是指?",
            "A": "傅介子",
            "B": "马援",
            "C": "班超",
            "correct": "B"
        }
    ]
}
4.输出的json文件如下所示:
[
    {
        "ID": 1,
        "question": "请问“匈奴不灭,何以为家”表达了\n哪位将军的爱国情怀?",
        "A": "卫青",
        "B": "霍去病",
        "C": "李广",
        "correct": "B"
    },
    {
        "ID": 2,
        "question": "请问诗句“朔方烽火照甘泉,长安飞\n将出祁连。”中的“飞将”指的是?\n",
        "A": "卫青",
        "B": "李广",
        "C": "马援",
        "correct": "B"
    },
    {
        "ID": 3,
        "question": "请问诗句“出身仕汉羽林郎,初随骠\n骑战渔阳。”中的“骠骑”是指?",
        "A": "霍去病",
        "B": "卫青",
        "C": "李广",
        "correct": "A"
    },
    {
        "ID": 4,
        "question": "请问诗句“伏波惟愿裹尸还”中“伏\n波”是指?",
        "A": "傅介子",
        "B": "马援",
        "C": "班超",
        "correct": "B"
    }
]

更多内容欢迎关注公众号:


码码小虫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值