GVKun编程网logo

在 Python 中格式化多行 dict 的正确方法是什么?

11

这篇文章主要围绕在Python中格式化多行dict的正确方法是什么?展开,旨在为您提供一份详细的参考资料。我们将全面介绍在Python中格式化多行dict的正确方法是什么?,同时也会为您带来Pytho

这篇文章主要围绕在 Python 中格式化多行 dict 的正确方法是什么?展开,旨在为您提供一份详细的参考资料。我们将全面介绍在 Python 中格式化多行 dict 的正确方法是什么?,同时也会为您带来Python 2.7:以非常精确的方式用非科学记数法格式化浮点数的正确方法是什么?、python – 使用Flask-WTForms选择性地需要字段的正确方法是什么?、python – 如何在PyCharm中格式化多行TODO注释?、python – 将SQLalchemy存储字符串设置为小写的正确方法是什么?的实用方法。

本文目录一览:

在 Python 中格式化多行 dict 的正确方法是什么?

在 Python 中格式化多行 dict 的正确方法是什么?

在 Python 中,我想在我的代码中编写一个多行字典。有几种方法可以格式化它。以下是我能想到的一些:

  1. mydict = { “key1”: 1,
    “key2”: 2,
    “key3”: 3,}

  2. mydict = { “key1”: 1,
    }

  3. mydict = {
    “key1”: 1,
    “key2”: 2,
    “key3”: 3,
    }

我知道以上任何一个在语法上都是正确的,但我假设 Python dicts 有一种首选的缩进和换行样式。它是什么?

注意:这不是语法问题。以上所有内容(据我所知)都是有效的 Python 语句,并且彼此等价。

Python 2.7:以非常精确的方式用非科学记数法格式化浮点数的正确方法是什么?

Python 2.7:以非常精确的方式用非科学记数法格式化浮点数的正确方法是什么?

我希望我对这个问题有所了解.

有时如果我打印一个小浮子,它看起来像6.1248979238e-05或类似的东西.

我希望能够说“无论如何,输出10位精度就像这样”:0.abcdefghij

解决方法

>>> '%0.10f'% 6.1248979238e-05 
'0.0000612490'

这是“字符串插值”或printf-style formatting,仍然得到广泛支持和使用.另一种选择是newer style string formatting:

>>> '{:.10f}'.format(6.1248979238e-05)
'0.0000612490'

或者如果你想与python2.6兼容:

>>> '{0:.10f}'.format(6.1248979238e-05)
'0.0000612490'

随便挑选.您使用的是哪个版本取决于您要支持的python版本.如果你只针对python2.7,那没关系.如果要支持早期版本,请使用printf-style.我个人在大部分代码中都转而使用最后一个表单.我不关心python2.5的支持,但是python2.6仍然是新的,我想在可能的情况下支持它.

python – 使用Flask-WTForms选择性地需要字段的正确方法是什么?

python – 使用Flask-WTForms选择性地需要字段的正确方法是什么?

我正在使用Flask与Flask-WTForms,我正在编写一个管理页面,可以更新用户的值 – 包括密码.

我正在使用我用于注册的相同表单页面,但由于不必更新密码,我不想要它.使用Flask-WTForms进行此操作的正确方法是什么?

我在forms.py中有我的UserForm,我正在考虑制作一个自定义验证器,并且有一个文件级require_password选项,它将覆盖默认检查.我是WTForms的新手,对Flask来说有点新鲜.

最佳答案
这个解决方案似乎做我想要的:

在forms.py中,

from flask.ext.wtf import Optional

def make_optional(field):
    field.validators.insert(0,Optional())

#Rest of code here...

然后在我的烧瓶终点内我可以打电话:

user_form = UserForm()
forms.make_optional(user_form.password)
if user_form.validate_on_submit():
    #Go on your merry way!

这似乎做我想要的 – 保留所有其他验证(例如确认),而忽略任何没有密码存在的东西.

python – 如何在PyCharm中格式化多行TODO注释?

python – 如何在PyCharm中格式化多行TODO注释?

我想在我的PyCharm项目中添加多行Todo注释.
# Todo: Multiple errors can be wrapped inside an exception.
#       WfcApiException should do recursive error checking to locate
#       and store an arbitrary number of nested errors.

不幸的是,PyCharm只将第一行识别为Todo评论.以下任何行都被视为标准Python注释.

在PyCharm中格式化多行Todo注释的正确方法是什么?

解决方法

更新:看来JetBrains添加了此功能,请参阅payala的回答

PyCharm does not支持多行Todo,另一种选择是使用多行字符串

'''
Todo foobar
foobar
'''

这将不会像#Todo foo那样突出显示Todo,但它会突出显示字符串突出显示的其余代码.

你也可以试试

# Todo -----------------
# Todo  foobar this
# Todo  comment 
# Todo  comment
# Todo  comment
# Todo ------------------

如果你有一个特别厚实和重要的Todo笔记.

python – 将SQLalchemy存储字符串设置为小写的正确方法是什么?

python – 将SQLalchemy存储字符串设置为小写的正确方法是什么?

我正在使用sqlAlchemy与我的数据库通信.因为没有多少人会使用我的应用程序(至少在最初阶段),我认为sqlite是最快/最简单的后端.

我有一个用户,它有一个基于字符串的唯一ID,例如asdf@asdf.com,或Fnord先生.我不关心id的格式 – 只是它是唯一的.但是,我希望这是一个不区分大小写的唯一性.所以Fnord先生和先生. fnord是等价的.

显然你可以使用的架构上有一个COLLATE设置,但是(至少对于sqlite)它似乎并不是一个好的前锋.我的解决方案是在类进入表之前使用类中的属性来小写所有内容,但这看起来很脆弱/ hackish.

属性是处理小写所有内容的最佳方法,还是有更好的方法通过sqlAlchemy / sqlite使大小写不敏感?

解决方法

我个人没试过,但也许你可以使用 custom comparator operator?即

class CaseInsensitiveColumnComparator(ColumnProperty.Comparator):
    def __eq__(self,other):
        return func.lower(self.__clause_element__()) == func.lower(other)

这样,您的ID可以存储在任何情况下,但会以小写形式进行比较.

另一个想法 – augment sqlalchemy.types.Text,并将其用于您的身份证.

import sqlalchemy.types as types

class LowerCaseText(types.TypeDecorator):
    '''Converts strings to lower case on the way in.'''

    impl = types.Text

    def process_bind_param(self,value,dialect):
        return value.lower()

class User(Base):
    __tablename__ = 'user'
    id = Column(LowerCaseText,primary_key=True)
    ...

关于在 Python 中格式化多行 dict 的正确方法是什么?的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Python 2.7:以非常精确的方式用非科学记数法格式化浮点数的正确方法是什么?、python – 使用Flask-WTForms选择性地需要字段的正确方法是什么?、python – 如何在PyCharm中格式化多行TODO注释?、python – 将SQLalchemy存储字符串设置为小写的正确方法是什么?等相关内容,可以在本站寻找。

本文标签: