如何使用python从输入值中提取一些特定的特殊字符

时间:2017-06-29 13:33:08

标签: python django

我需要一些帮助。我需要从输入字符串中转义一些特定的特殊字符,如if request.method == 'POST': rname = request.POST.get('react') ,这是通过post方法使用python和Django获得的。我在下面解释我的代码。

info = [
  {
    "faceAttributes": {
      "glasses": "NoGlasses"
    },
    "faceId": "0f0a985e-8998-4c01-93b6-8ef4bb565cf6",
    "faceRectangle": {
      "height": 162,
      "left": 177,
      "top": 131,
      "width": 162
    }
  }
]

for item in info:
    print (item["faceAttributes"]["glasses"])

>>> 'NoGlasses'

这里从上面的输入值我需要删除特殊字符。请帮帮我。

4 个答案:

答案 0 :(得分:0)

也许

import string
bad_chars = "()|&"
rname = "|icha()"
rname.translate(string.maketrans("", "", ), bad_chars)

# This becomes 'icha'

Python strip() multiple characters?

中对此进行了解释

答案 1 :(得分:0)

这可以使用正则表达式来完成。我的方法是:

import re

special_chars = r'[;\|>&]'
rname = request.POST.get('react')
cleaned_rname = re.sub(special_chars, '', rname)

现在,如果字符串rname包含任何特殊字符,它们将被删除,您将获得带有输出的新字符串cleaned_rname

在变量special_chars中,您可以指定应删除的所有字符。它们括在方括号内:[]

答案 2 :(得分:0)

你的问题不是很清楚。请清楚说明哪个变量可以逃脱哪些字符以及它们将成为什么。

可能对您有所帮助的摘录:

>>> 'HeRllo'.replace('R','')
Hello

或者,对于给定的字符列表:

>>> stringToEscape = 'He≪o'
>>> sources = ['&', ';']
>>> targets = ['', '']
>>> for source, target in zip(sources, targets):
>>>   stringToEscape = stringToEscape.replace(source, target)
>>> print stringToEscape
Hello

但也许您正在寻找Django中已存在的特殊功能。

答案 3 :(得分:0)

这使用替换方法:

chars = ";>" # and so on
rname = "stuff;"

for char in chars:
    if char in rname:
        new_rname = rname.replace(char,'')
    rname = new_rname

您必须分配一个新变量,因为字符串是不可变的。结果应该是:

>>print(rname)
stuff