字符串处理,json格式化
接口返回的数据键名缺少双引号,无法转换成json格式,例:msg部分缺少双引号,应该是“msg”
{msg:"",timestampStr:"2022-01-26 20:48:37",headers:{},timestamp:1643201317238,data:{ID:"b86bd915d6964f72a752039a72428dee",TITLE:"特教学校左面人行道杂草处理",CREATETIME:"2021-09-18 17:25:49",NAME:"mmm",CONTENT:"领导们好,最近学校开学,上学的人行道被树枝遮挡,靠右边的车道又被大型货车违规占道,学生们只能从马路中间行走,给上下学自行回家的学生们带来很大的安全隐患。希望安排工作人员把人行楼梯上的树枝处理一下。感激不尽!!!"},status:0}
import re
data = '{msg:"",timestampStr:"2022-01-26 20:48:37",headers:{},timestamp:1643201317238,data:{ID:"b86bd915d6964f72a752039a72428dee",TITLE:"特教学校左面人行道杂草处理",CREATETIME:"2021-09-18 17:25:49",NAME:"mmm",CONTENT:"领导们好,最近学校开学,上学的人行道被树枝遮挡,靠右边的车道又被大型货车违规占道,学生们只能从马路中间行走,给上下学自行回家的学生们带来很大的安全隐患。希望安排工作人员把人行楼梯上的树枝处理一下。感激不尽!!!"},s:0}'
def handle(s):
while a := re.search(r"({|,)(\w*):", s):
b = list(s)
b.insert(a.span() + 1, '"')
b.insert(a.span(), '"')
s = "".join(b)
return s
handle(data) ckblt 发表于 2022-1-26 21:43
你的思路我理解了,很不错,但我孤陋寡闻,请教一下:while a := re.search(r"({|,)(\w*):", s):
这 := 是哪里的语法,不报错? 是python2的写法? 阿奇_o 发表于 2022-1-27 00:15
你的思路我理解了,很不错,但我孤陋寡闻,请教一下:while a := re.search(r"({|,)(\w*):", s):
这 :=...
不是的,Python 3.8 才出现
:= 运算符(海象运算符)是赋值同时也返回值
比如,
>>> a = 10 # 没返回值
>>> if (b := 20) == 20: print(b) # 其中,b 赋值为 20,而 (b := 20) 返回 20(说白了就是等于20)
20
>>> b
20
注意,海象运算符只能在 if 的条件里(if a:=10 > 5: xxx)
或是在 while 的条件里 (while a := 10 > 5: xxx)
或是在列表推导式里。
我其实也说不清楚,你可以百度“python 海象运算符” ckblt 发表于 2022-1-27 11:11
不是的,Python 3.8 才出现
:= 运算符(海象运算符)是赋值同时也返回值
我的python 3.7,原来如此。。 "海象运算符",哈哈,够形象的 := 阿奇_o 发表于 2022-1-27 12:16
我的python 3.7,原来如此。。 "海象运算符",哈哈,够形象的 :=
pascal里面的赋值语句
页:
[1]