是的,总之,我想知道为什么我在我的键和值前面看到au。
我正在渲染表格。该表格具有用于特定标签的复选框和用于IP地址的一个文本字段。我正在创建一个字典,其键为标签,这些键在list_key中进行了硬编码,并且字典的值取自表单输入(list_value)。字典已创建,但对于某些值,其前面带有u。这是字典的示例输出:
{u'1': {'broadcast': u'on', 'arp': '', 'webserver': '', 'ipaddr': u'', 'dns': ''}}
有人可以解释我在做什么错。当我在pyscripter中模拟类似方法时,我没有收到错误消息。欢迎提出任何改进代码的建议。谢谢
`#!/usr/bin/env python
import webapp2
import itertools
import cgi
form =”“”
<label> Allow Broadcast
<input type="checkbox" name="broadcast">
</label>
<br><br>
<label> Allow ARP
<input type="checkbox" name="arp">
</label><br><br>
<label> Allow Web traffic from external address to internal webserver
<input type="checkbox" name="webserver">
</label><br><br>
<label> Allow DNS
<input type="checkbox" name="dns">
</label><br><br>
<label> Block particular Internet Protocol address
<input type="text" name="ipaddr">
</label><br><br>
<input type="submit">
</form>
”“”
dictionarymain={}
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.out.write(form)
def post(self):
# get the parameters from the form
profile = self.request.get('profiles')
broadcast = self.request.get('broadcast')
arp = self.request.get('arp')
webserver = self.request.get('webserver')
dns =self.request.get('dns')
ipaddr = self.request.get('ipaddr')
# Create a dictionary for the above parameters
list_value =[ broadcast , arp , webserver , dns, ipaddr ]
list_key =['broadcast' , 'arp' , 'webserver' , 'dns' , 'ipaddr' ]
#self.response.headers['Content-Type'] ='text/plain'
#self.response.out.write(profile)
# map two list to a dictionary using itertools
adict = dict(zip(list_key,list_value))
self.response.headers['Content-Type'] ='text/plain'
self.response.out.write(adict)
if profile not in dictionarymain:
dictionarymain[profile]= {}
dictionarymain[profile]= adict
#self.response.headers['Content-Type'] ='text/plain'
#self.response.out.write(dictionarymain)
def escape_html(s):
return cgi.escape(s, quote =True)
app = webapp2.WSGIApplication([(‘/’, MainHandler)],
debug=True)`
字符串值前面的“ u”表示该字符串已表示为unicode。字符串前面的字母称为“字符串编码声明”。Unicode是一种表示比普通ascii可以管理的字符更多的字符的方法。
你可以通过多种方式将字符串转换为unicode:
>>> u'foo'
u'foo'
>>> unicode('foo')
u'foo'
但是真正的原因是要代表这样的东西(在这里翻译):
>>> val = u'Ознакомьтесь с документацией'
>>> val
u'\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439'
>>> print val
Ознакомьтесь с документацией
在大多数情况下,在此代码中将它们与ascii字符串区别对待时,应该不会有任何错误。
你还会看到其他符号,例如“ raw”符号,用于告诉字符串不要解释任何特殊字符。在python中执行正则表达式时,这非常有用。
>>> 'foo\"'
'foo"'
>>> r'foo\"'
'foo\\"'
ASCII和Unicode字符串在逻辑上可以等效:
>>> bird1 = unicode('unladen swallow')
>>> bird2 = 'unladen swallow'
>>> bird1 == bird2
True
问题内容: 在python源代码中,我偶然发现在类似如下的字符串之前有一个小b: 我知道表示unicode字符串的前缀和原始字符串文字的前缀。 它看起来像一个没有任何前缀的纯字符串,它代表什么?它在哪种源代码中有用? 问题答案: 这是Python3 bytes 文字。在Python 2.5和更早版本中,此前缀不存在(它等效于2.x的纯字符串,而3.x的纯字符串等效u于2.x中带有前缀的文字)。在P
问题内容: 我正在查看类似于以下内容的代码行: 我认为符号字符串是指每小时,每分钟等显示的数字字符的数量-或类似的东西,我不确定。 通常,我可以弄清楚这种情况,但是在Google上搜索“%02d%01d”时找不到任何有用的参考。有人能为我阐明一下吗? 问题答案: http://www.cplusplus.com/reference/clibrary/cstdio/printf/ 相同的规则应适用于
问题内容: 和之间有什么区别?这部分是什么意思?Python文档的哪一章涵盖了该主题? 问题答案: 前导的转义序列意味着接下来的两个字符被解释为字符代码的十六进制数字,因此等于-即小而小写的小写字符。 转义序列记录在Python文档的此处的简短表格中。
问题内容: 我在阅读$ _SESSION [‘username’]进入SQL查询之前是否需要转义? 它说:“无论源如何,都需要对传递给sql查询的每个字符串进行转义”。现在我知道类似这样的事情是非常基本的。Google搜索显示超过20,000个结果。仅Stackoverflow就有20页的结果,但是没有人实际解释转义字符串是什么或如何转义。只是假设。你能帮助我吗?我想学习,因为我一如既往地使用PH
问题内容: 在问这个问题时,我意识到我对原始字符串不了解很多。对于自称是Django培训师的人来说,这很糟糕。 我知道什么是编码,而且我知道自从得到以来,它独自做什么。 但是究竟是什么呢?它产生什么样的字符串? 最重要的是,该怎么办? 最后,有没有可靠的方法可以从Unicode字符串返回到简单的原始字符串? 嗯,顺便说一句,如果你的系统和文本编辑器字符集设置为UTF-8,u’‘实际上有什么作用吗?
问题内容: 显然,以下是有效的语法 我想知道: 这是什么b字在前面的字符串是什么意思? 使用它有什么作用? 在什么情况下可以使用它? 我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是是要从版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。 我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为的文档。不幸的是,它在