小编hyn*_*cer的帖子

什么是找到重复对象的好pythonic方法?

我经常使用sortedgroupby查找迭代中的重复项.现在我觉得它不可靠:

from itertools import groupby
data = 3 * ('x ',  (1,), u'x')
duplicates = [k for k, g in groupby(sorted(data)) if len(list(g)) > 1]
print duplicates
# [] printed - no duplicates found - like 9 unique values
Run Code Online (Sandbox Code Playgroud)

为什么代码在Python 2.x的上述故障的原因进行了说明这里.

什么是可靠的pythonic方法来查找重复项?

我在SO上寻找类似的问题/答案.其中最好的是" 在Python中,我如何获取列表并将其缩减为重复列表? ",但是接受的解决方案不是pythonic(它是程序多行的......如果...添加... else ... add ... return result)和其他解决方案不可靠(取决于"<"运算符的未实现的传递性)或缓慢(O n*n).

[编辑]关闭.接受的答案帮助我在下面的答案中总结了更为一般的结论.

我喜欢使用内置类型来表示例如树结构.这就是为什么我现在害怕混合.

python sorting python-2.x

8
推荐指数
1
解决办法
1698
查看次数

Django ORM,如何使用values()并仍然可以使用choicefield?

我正在使用django v1.10.2

我正在尝试创建动态报告,我将字段和条件以及主要的ORM模型信息存储到数据库中.

我生成动态报告的代码是

class_object = class_for_name("app.models", main_model_name)

results = (class_object.objects.filter(**conditions_dict)
                               .values(*display_columns)
                               .order_by(*sort_columns)
                               [:50])
Run Code Online (Sandbox Code Playgroud)

所以main_model_name可以是任何东西.
这除了的,有时相关车型的伟大工程main_model具有choicefield.

所以其中一份报告main_modelPallet.
Pallet有很多PalletMovement.
我的显示器栏目有:serial_number,created_at,pallet_movement__location

前两列是属于Pallet模型的字段.最后一个来自PalletMovement

会发生什么样的PalletMovement模型看起来像这样:

class PalletMovement(models.Model):
    pallet = models.ForeignKey(Pallet, related_name='pallet_movements',
                               verbose_name=_('Pallet'))
    WAREHOUSE_CHOICES = (
        ('AB', 'AB-Delaware'),
        ('CD', 'CD-Delaware'),
    )
    location = models.CharField(choices=WAREHOUSE_CHOICES,
                                max_length=2,
                                default='AB',
                                verbose_name=_('Warehouse Location'))
Run Code Online (Sandbox Code Playgroud)

由于查询集会返回原始值,我如何利用choicefieldin PalletMovement模型来确保pallet_movement__location给出显示的?AB-DelawareCD-Delaware

请记住,main_model根据我在数据库中存储的内容,可以是任何内容. …

python django django-orm django-queryset choicefield

8
推荐指数
1
解决办法
656
查看次数

无法在Google协作平台上传本地文件

我正在尝试从本地系统上传Google Colaboratory中的word2vec文件,并在代码中进一步使用它.

这是我使用的代码.

from google.colab import files
uploaded = files.upload()
Run Code Online (Sandbox Code Playgroud)

每次执行它时,都会显示以下错误.

上传小部件仅在当前浏览器会话中执行单元格时可用.请重新运行此单元格以启用

 MessageError  Traceback (most recent call last)
<ipython-input-1-292f82be1b7a> in <module>()  

      1 from google.colab import files
      2 
----> 3 uploaded = files.upload()`
      4 
      5 for fn in uploaded.keys():

/usr/local/lib/python3.6/dist-packages/google/colab/files.py in upload() 

     59   result = output.eval_js(
     60       'google.colab._files._uploadFiles("{input_id}", "{output_id}")'.format(
---> 61           input_id=input_id, output_id=output_id))
     62   files = collections.defaultdict(six.binary_type)
     63 

/usr/local/lib/python3.6/dist-packages/google/colab/output/_js.py in 
eval_js(script, ignore_result)

     37   if ignore_result:
     38     return
---> 39   return _message.read_reply_from_input(request_id)
     40 
     41 

/usr/local/lib/python3.6/dist-packages/google/colab/_message.py in 
read_reply_from_input(message_id, timeout_sec)

     84         reply.get('colab_msg_id') == message_id): …
Run Code Online (Sandbox Code Playgroud)

python file-upload google-colaboratory

8
推荐指数
2
解决办法
7169
查看次数

使用Google Colab上传本地文件

尝试使用Google Collaboratory通过这种方式上传本地文件:

from google.colab import files
uploaded = files.upload()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

仅当在当前浏览器会话中执行了单元格时,上载小部件才可用。请重新运行此单元格以启用。

我重新运行单元,但是它不起作用...

python jupyter-notebook google-colaboratory

7
推荐指数
2
解决办法
1万
查看次数

如何调试从计算机到服务器,服务器端的连接

我的Centos 7服务器正在运行apache 2.4.6,并且正在使用mod_wsgi提供Django webapp。我的问题是我无法从另一台计算机的浏览器访问服务器URL。我没有从apache及其启动和运行中获得任何错误。我已经在http.conf文件中将错误日志设置为“调试”,但仍然没有错误。我知道服务器实际上通过ping连接到Internet,我知道它正在通过运行在端口:80上侦听

netstat -tunlp | grep 80

tcp        0      0 0.0.0.0:60080           0.0.0.0:*               LISTEN      3841/name-gu 
tcp6       0      0 :::80                   :::*                    LISTEN      13882/httpd  
Run Code Online (Sandbox Code Playgroud)

我也暂时关闭了服务器端的所有防火墙

我的settings.py在下面有url,ip地址和localhost ALLOWED_HOSTS

我该如何调试此问题,以便检查错误?


日志:让我知道是否需要tcpdump -nn tcp port 80在服务器计算机curl -v myurl.com上运行更多信息,然后在我的计算机上运行并在服务器上获取以下结果:

13:11:52.225076 IP 10.0.24.67.40658 > 10.0.26.20.80: Flags [S], seq 3327782620, win 29200, options [mss 1460,sackOK,TS val 36451589 ecr 0,nop,wscale 7], length 0
13:11:52.225355 IP 10.0.26.20.80 > 10.0.24.67.40658: Flags [S.], seq 1689726058, ack 3327782621, win 28960, options [mss 1460,sackOK,TS val 73904848 ecr …
Run Code Online (Sandbox Code Playgroud)

apache django centos7

7
推荐指数
1
解决办法
154
查看次数

Django - 复杂的查询

假设我有两个模型:

class Profile(models.Model):
    #some fields here

class Ratings(models.Model):
    profile = models.ForeignKey(profile)
    category = models.IntegerField()
    points = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

假设遵循MySQL表"评级":

profile    |    category    |    points
   1                1               10
   1                1               4
   1                2               10
   1                3               0
   1                4               10
   1                4               10
   1                4               10
   1                5               0
Run Code Online (Sandbox Code Playgroud)

我的POST数据以及其他字段值中包含以下值:

category_1_avg_val = 7
category_2_avg_val = 5
category_3_avg_val = 5
category_4_avg_val = 7
category_5_avg_val = 9
Run Code Online (Sandbox Code Playgroud)

我想过滤具有针对高于或等于所需值的类别计算的平均评级的配置文件.

一些过滤器最初应用为:

q1 = [('associated_with', search_for),
      ('profile_type__slug__exact', profile_type),
      ('gender__in', gender),
      ('rank__in', rank),
      ('styles__style__in', styles),
      ('age__gte', age_from),
      ('age__lte', …
Run Code Online (Sandbox Code Playgroud)

python django

6
推荐指数
1
解决办法
5229
查看次数

Django数据库错误:未安装social_auth时缺少表social_auth_usersocialauth

我正试图在Django应用程序中处理一个非常令人费解的错误.当DEBUG = False时,尝试删除用户(via user.delete())会出现此数据库错误:

DatabaseError: relation "social_auth_usersocialauth" does not exist
LINE 1: ...", "social_auth_usersocialauth"."extra_data" FROM "social_au...
Run Code Online (Sandbox Code Playgroud)

但是,我在INSTALLED_APPS中没有social_auth或类似名称的任何东西,我的数据库中也没有这样的表,我的代码也没有引用任何类似的东西(我在整个'社交'上运行了一个文本搜索项目文件夹) - 再次,这在DEBUG = True时工作正常.social_auth安装在我的系统和我的PYTHONPATH上,但我看不出这个应用程序在哪里得到了应该在其数据库中拥有social_auth表的想法,更不用说为什么它只在DEBUG = False时才这样认为.

我的应用程序可以通过哪些途径获取此表,我怎么能说服它不应该在那里?

python django tastypie

6
推荐指数
1
解决办法
2449
查看次数

django rest框架嵌套的modelserializer

这是我的另一个问题
django-rest-framework,多模型继承,ModelSerializers和嵌套序列化

在django rest框架中我们可以像这样定义嵌套模型序列化器

class OtherModelSerializer(serializer.ModelSerializer):
    mybasemodel_set = MyBaseModelSerializer(many=True)

    class Meta:
        model = OtherModel
Run Code Online (Sandbox Code Playgroud)

当我们创建一个OtherModelSerializer时,MyBaseModelSerializer在__init__运行之前被实例化.我相信是这种情况,因为如果我覆盖__init__()MyBaseModelSerializer并检查"实例",则它是None.

我的问题是什么时候以及如何MyBaseModelSerializer通过查询集或实例mybasemodel_set

我的目标是覆盖我们这样做时发生的事情.

python django django-models django-queryset django-rest-framework

6
推荐指数
1
解决办法
1918
查看次数

python中的有理函数曲线拟合

我正在尝试使用有理函数将曲线拟合到 X 和 Y 数据点。它可以在 Matlab 中使用 cftool ( http://de.mathworks.com/help/curvefit/rational.html ) 完成。但是,我希望在 Python 中做同样的事情。我曾尝试使用scipy.optimize.curve_fit(),但它最初需要一个我没有的函数。

python matlab curve-fitting scipy

6
推荐指数
1
解决办法
5157
查看次数

如何在Colaboratory中使用numba

有人试图在谷歌合作中使用numba吗?我只是无法弄清楚如何在这种环境中进行设置.目前,我坚持错误library nvvm not found.

numba numba-pro google-colaboratory

6
推荐指数
1
解决办法
1309
查看次数