Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

6
正则表达式语法是否“不匹配”?
我有一个大量使用regexp的python模板引擎。它使用如下连接: re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" ) 我可以修改单个子字符串(regexp1,regexp2等)。 是否有任何轻巧的表达式什么都不匹配,我可以在不需要任何匹配的模板中使用它?不幸的是,有时将'+'或'*'附加到regexp原子上,所以我不能使用空字符串-这将引发“无可重复”的错误。
82 python  regex 

1
用pymongo在mongodb中按ObjectId搜索
我需要使用pymongo用python搜索ObjectId,但是我总是会收到此错误。有什么想法如何搜索? import pymongo from pymongo import MongoClient from pymongo import ObjectId gate = collection.find({'_id': ObjectId(modem["dis_imei"])}) print gate Traceback (most recent call last): File "C:\Users\gerswin\Documents\Proyectos\Demonio py\test.py", line 2, in <module> import pymongo File "C:\Python27\lib\site-packages\pymongo\__init__.py", line 80, in <module> from pymongo.connection import Connection File "C:\Python27\lib\site-packages\pymongo\connection.py", line 39, in <module> from pymongo.mongo_client import …


10
使用datetime在python中获取UTC时间戳
有没有一种方法可以通过指定日期来获取UTC时间戳?我期望的是: datetime(2008, 1, 1, 0, 0, 0, 0) 应该导致 1199145600 创建朴素的datetime对象意味着没有时区信息。如果我查看datetime.utcfromtimestamp的文档,则创建UTC时间戳意味着遗漏时区信息。因此,我猜想,创建一个简单的datetime对象(如我所做的那样)会导致UTC时间戳。然而: then = datetime(2008, 1, 1, 0, 0, 0, 0) datetime.utcfromtimestamp(float(then.strftime('%s'))) 结果是 2007-12-31 23:00:00 datetime对象中是否还存在任何隐藏的时区信息?我究竟做错了什么?

4
为什么map在Python 3中返回地图对象而不是列表?
我对了解Python 3.x的新语言设计感兴趣。 我在Python 2.7中确实喜欢这个函数map: Python 2.7.12 In[2]: map(lambda x: x+1, [1,2,3]) Out[2]: [2, 3, 4] 但是,在Python 3.x中,情况发生了变化: Python 3.5.1 In[2]: map(lambda x: x+1, [1,2,3]) Out[2]: <map at 0x4218390> 我了解操作方法,但是找不到原因。语言设计师为什么要做出这种选择,我认为这会带来很多痛苦。这是否会困扰开发人员坚持列出理解? IMO,列表自然可以认为是函子;有人以某种方式想到了我: fmap :: (a -> b) -> f a -> f b

3
相当于R中的python dict
我想使R中的python字典等效。基本上,在python中,我有: visited = {} if atom_count not in visited: Do stuff visited[atom_count] = 1 这个想法是,如果我看到了那个特定的atom_count,我就访问了[atom_count] =1。因此,如果我再次看到那个atom_count,我就不会“做东西”。Atom_Count是一个整数。 谢谢!
82 python  r  dictionary 


9
用Python读取/写入文件内容的最简单方法
在Ruby中,您可以使用读取文件s = File.read(filename)。我在Python中知道的最短和最清楚的是 with open(filename) as f: s = f.read() 还有其他方法可以使它更短(最好是一行)并且更具可读性吗? 注意:最初,我将问题表述为“在一行代码中执行此操作”。正如S.Lott所指出的,更短并不一定意味着更具可读性。因此,我改写我的问题只是为了阐明我的意思。我认为Ruby代码更好,更易读,这不一定是因为它是一行还是两行(尽管也很重要),还因为它是一个类方法,而不是实例方法,实例方法对谁关闭文件毫无疑问,如何确保即使引发异常也将其关闭等。如下面的答案所指出的,您可以依靠GC关闭文件(因此使它成为一类文件),但这会使代码更糟虽然更短。不仅因为无法携带,而且使其变得不清楚。
82 python 

12
Python函数通过引用调用
在某些语言中,可以使用特殊的保留字(例如ref或val)通过引用或值传递参数。当您将参数传递给Python函数时,它永远不会在离开函数时更改参数的值。唯一的方法是使用全局保留字(或据我目前的了解)。 范例1: k = 2 def foo (n): n = n * n #clarity regarding comment below square = n return square j = foo(k) print j print k 会显示 >>4 >>2 显示k为不变 在此示例中,变量n从不更改 范例2: n = 0 def foo(): global n n = n * n return n 在此示例中,变量n已更改 …
82 python 

2
如何在Jinja2模板中包含HTML文件?
我正在为使用Jinja模板的服务器使用Flask微框架。 我有一个父级template.html,一些子级模板称为child1.html和child2.html,其中一些子级模板是相当大的HTML文件,我想以某种方式将其拆分,以使工作更清晰。 我的main.py脚本内容: from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') @app.route('/<task>') def home(task=''): return render_template('child1.html', task=task) app.run() 简化的template.html: <!DOCTYPE html> <html> <head></head> <body> <div class="container"> {% block content %}{% endblock %} </div> </body> </html> 魔力在于child1.html: {% extends 'template.html' %} {% block content %} {% if task == …
82 python  html  flask  jinja2 

6
如何合并Series和DataFrame
如果您是来这里寻找有关如何合并aDataFrame和Series索引的信息,请查看此答案。 OP的最初意图是询问如何将系列元素作为列分配给另一个DataFrame。如果您想知道答案,请查看EdChum接受的答案。 我能想到的最好的是 df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]}) # see EDIT below s = pd.Series({'s1':5, 's2':6}) for name in s.index: df[name] = s[name] a b s1 s2 0 1 3 5 6 1 2 4 5 6 有人可以建议更好的语法/更快的方法吗? 我的尝试: df.merge(s) AttributeError: 'Series' object has no attribute 'columns' 和 df.join(s) …

5
在类方法中使用super
我正在尝试学习Python中的super()函数。 我以为我已经掌握了它,直到我看完这个示例(2.6)并发现自己陷入困境。 http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-example Traceback (most recent call last): File "<stdin>", line 1, in <module> File "test.py", line 9, in do_something do_something = classmethod(do_something) TypeError: unbound method do_something() must be called with B instance as first argument (got nothing instead) >>> 当我在示例之前阅读此行时,这不是我期望的: 如果使用的是类方法,则没有实例可以调用super。对我们来说幸运的是,即使类型是第二个参数,super也可以工作。---可以将类型直接传递给super,如下所示。 Python不能通过说do_something()应该与B的实例一起调用来告诉我。

2
使用模拟补丁模拟实例方法
我正在尝试使用富有想象力的Mock测试库测试Django应用程序时模拟某些东西。我似乎无法完全正常工作,我正在尝试这样做: models.py from somelib import FooClass class Promotion(models.Model): foo = models.ForeignKey(FooClass) def bar(self): print "Do something I don't want!" test.py class ViewsDoSomething(TestCase): view = 'my_app.views.do_something' def test_enter_promotion(self): @patch.object(my_app.models.FooClass, 'bar') def fake_bar(self, mock_my_method): print "Do something I want!" return True self.client.get(reverse(view)) 我究竟做错了什么?
82 python  mocking 

6
“'测试'模块导入错误”是什么意思?
我逐行复制了一个有效的测试,只是更改了几个名称(至少我想如此),现在我得到了一个非常神秘的错误:(我用FOO,BAR替换了一些东西) ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed? 问题是我根本不理解该错误。此错误消息是什么意思? 完整的堆栈跟踪: Traceback (most recent call last): File "BAR/modeling/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv super(Command, …
82 python  django 

7
使用django-rest-framework序列化程序检索外键值
我正在使用django rest框架来创建API。我有以下型号: class Category(models.Model): name = models.CharField(max_length=100) def __unicode__(self): return self.name class Item(models.Model): name = models.CharField(max_length=100) category = models.ForeignKey(Category, related_name='items') def __unicode__(self): return self.name 要为类别创建序列化器,请执行以下操作: class CategorySerializer(serializers.ModelSerializer): items = serializers.RelatedField(many=True) class Meta: model = Category ...这将为我提供: [{'items': [u'Item 1', u'Item 2', u'Item 3'], u'id': 1, 'name': u'Cat 1'}, {'items': [u'Item …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.