小编tr3*_*ous的帖子

django批量创建忽略重复

我正在尝试批量插入一个非常大的数据集的MySQL数据库,并且喜欢使用django bulk_create而忽略重复的错误.

样品型号:

class MyModel(models.Model):
    my_id=models.IntegerField(primary_key=True)
    start_time = models.DateTimeField()
    duration = models.IntegerField()
    ......
    description = models.CharField(max_length=250)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有以下代码(所有模型的通用,我传入Model_instance()和[bulk_create对象列表]):

def insert_many(model, my_objects):
    # list of ids where pk is unique
    in_db_ids = model.__class__.objects.values_list(model.__class__._meta.pk.name)
    if not in_db_ids:
        # nothing exists, save time and bulk_create
        model.__class__.objects.bulk_create(my_objects)
    else:
        in_db_ids_list = [elem[0] for elem in in_db_ids]

        to_insert=[]
        for elem in my_objects:
            if not elem.pk in in_db_ids_list:
                to_insert.append(elem)
        if to_insert:
            model.__class__.objects.bulk_create(to_insert)
Run Code Online (Sandbox Code Playgroud)

django有没有办法做到这一点,以避免重复?模仿MySQL insert ignore会很棒.如果我只是使用bulk_create(非常快),如果主键重复并且插入停止,我会收到错误.

python mysql django bulkinsert bulk

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

parse.com后端的开源替代品

只是想知道是否有一个免费的parse.com替代方案,允许人们在表中任意存储数据并动态创建数据库(例如在mysql中),就像parse.com一样.

我很想知道并使用它,然后花时间创建一个.

谢谢!

mysql database cloud parse-platform

11
推荐指数
3
解决办法
8158
查看次数

python 2.6 - 有效地删除和计算字典列表中的重复项

我正在努力有效地改变:

[{'text': 'hallo world', 'num': 1}, 
 {'text': 'hallo world', 'num': 2}, 
 {'text': 'hallo world', 'num': 1}, 
 {'text': 'haltlo world', 'num': 1}, 
 {'text': 'hallo world', 'num': 1}, 
 {'text': 'hallo world', 'num': 1}, 
 {'text': 'hallo world', 'num': 1}]
Run Code Online (Sandbox Code Playgroud)

到没有重复的字典列表和重复的计数:

[{'text': 'hallo world', 'num': 2, 'count':1}, 
 {'text': 'hallo world', 'num': 1, 'count':5}, 
 {'text': 'haltlo world', 'num': 1, 'count':1}]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有以下内容来查找重复项:

result = [dict(tupleized) for tupleized in set(tuple(item.items()) for item in li)]
Run Code Online (Sandbox Code Playgroud)

它返回:

[{'text': 'hallo world', 'num': 2}, 
 {'text': 'hallo world', 'num': 1}, 
 {'text': 'haltlo …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
2
解决办法
1417
查看次数

标签 统计

mysql ×2

python ×2

bulk ×1

bulkinsert ×1

cloud ×1

database ×1

django ×1

parse-platform ×1