添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

今天遇到一个需求,字符串类似

"{ 'form_view_ref' : 'hr_expense.hr_expense_view_form_without_header'    ,'default_employee_id': employee_id,    'default_company_id': company_id}"

这并不是标准的json字符串,因为其中含有变量,所以无法使用json.loads将其转为字典。需求是将form_view_ref这个字段的键值对删除。又想到可以使用eval函数,先将其中的变量声明赋值,再转为dict删除form_view_ref键值对后再转为json字符串。但是这样无论如何json字符串的字段都会含有双引号,真tm操性。老子直接上正则。

import re
context = "{ 'form_view_ref' : 'hr_expense.hr_expense_view_form_without_header'    ,'default_employee_id': employee_id,    'default_company_id': company_id}"
def remove_item(string: str, key: str) -> str:
    string = string.lstrip(" ").rstrip(" ").lstrip("{").rstrip("}")
    key_pattern = ".+" + key + ".+"
    # 这种情况是指定字段不在最后,有逗号的时候
    replace_pattern_first = re.compile(f"[\'\"]{key}?[\'\"].+?:.+?[\'\"].+?[\'\"][^,]+,")
    # 这种情况是指定字段在最后,没有逗号的时候
    replace_pattern_second = re.compile(f"[\'\"]{key}?[\'\"].+?:.+?[\'\"].+?[\'\"][^,]?")
    if not re.match(key_pattern, string):
        raise Exception("嗨害")
    string = re.sub(replace_pattern_first, "", string)
    string = re.sub(replace_pattern_second, "", string)
    string = "{" + string.lstrip(" ").rstrip(" ").rstrip(",").rstrip(" ") + "}"
    return string
print(remove_item(context, "form_view_ref"))

正则真的很难写,而且很难测,而且真的很难写,而且很难测。

这里写目录标题问题代码结语问题今天遇到一个需求,字符串类似"{ 'form_view_ref' : 'hr_expense.hr_expense_view_form_without_header' ,'default_employee_id': employee_id, 'default_company_id': company_id}"这并不是标准的json字符串,因为其中含有变量,所以无法使用json.loads将其转为字典。需求是将form_view_ref这个字段的键值对删除。
这篇文章主要介绍了python删除某个元素的方法解析,文通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python关于删除list的某个元素,一般有三种方法:remove、pop、del 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: >>> str=[1,2,3,4,5,2,6] >>> str.remove(2) [1, 3, 4, 5, 2, 6] 2.pop: 删除单个或多个元素,按位删除(根据索引删除) >>> str=[0,1,2,3,4,5,6] >>> str.pop(
d.update({'three': 3, 'four':4}) d.update({'one': 2, 'two': 2}) with open('param.json', 'r+') as file: p = json.load(file) #key= 'one' #del p(key) //这里 [{id,12,title:"测试数据标题",content:"这是文章内容"}, {id,13,title:"测试数据标题13",content:"这是文章内容"}, {id,14,title:"测试数据标题14",content:"这是文章内容"}] 我们经常碰到一些JSON数据的Key值不是字符串,这些数据在JavaScript的上下文是可以解析的,但在Python,没有该部分数据的上下文,无法采用json.loads(JSON)的形式导入。 方法一:使用demjson库 pip in string1 = '海堤(段)终点坐标(东经)(度)' string2 = "分(泄)洪闸(节制闸、排退水闸、引进水闸、挡潮闸)设计过闸流量" string3 = '就医地点分类(本统筹地区、(地级)市内跨统筹地区、省内跨统筹地区、省外就医)' 1.正则匹配串前加了r就是为了使得里面的特殊符号不用写反斜杠了。 2.[ ]具有去特殊符号的作用,也就是说[(]里的(只是平凡的括号 3.正则匹配串里的()是为了提取整个正则串符合括号里 json_str = '{"name": "John", "age": 30, "city": "New York"}' data = json.loads(json_str) name = data['name'] age = data['age'] city = data['city'] print(name, age, city) 输出结果为: John 30 New York [code=python] rom flask_restful import Api as _Api from werkzeug.exceptions import HTTPException class Api(_Api): def handle_error(self, e): if isinstance(e, HTTPException): raise HTTPException() else: raise Exception() [/code] 【python】利用多进程提高计算型任务速度 哥的心、禁止访问: 主播 csgo是大地球吗 【UNIX网络编程】第五章TCP简单通讯完整代码及知识点 工丨具丨人: 我只玩上半场 【UNIX网络编程】第五章TCP简单通讯完整代码及知识点 哥的心、禁止访问: 博主真不是好人,博主竟然爱玩飞盘 c语言可变参数原理 爱唱歌的葫芦娃: 写的很通俗易懂了