通过 python 生成随机数据,并批量插入到 Amazon DocumentDB (或mongodb) 中
创始人
2024-03-15 20:09:40

通过 python 生成随机数据,并批量插入到 Amazon DocumentDB (或mongodb) 中。

Python 生成随机数据。 使用 random。 例如:
随机整数 (0 - 999999)

id = random.randint(0,999999)

随机选择一个 item

enum_city = ['Beijing','Shanghai','Guangzhou','Shenzhen','Hangzhou','Wuhan']
city = random.choice(enum_city)

随机字符串

import random
import string
str = random.sample(string.ascii_letters + string.digits, 16)
print(''.join(str))

生成想要的数据格式(json)

    enum_bool = ['true', 'false']enum_sexy = ['male', 'female']enum_city = ['Beijing','Shanghai','Guangzhou','Shenzhen','Hangzhou','Wuhan']enum_device = ['IOS','Android']random_id = random.randint(0,99999999)mobile = '138%s' % random_idsmsConsent = random.choice(enum_bool)emailConsent = random.choice(enum_bool)sexual = random.choice(enum_sexy)city = random.choice(enum_city)device = random.choice(enum_device)insertdata = '''
{"journeyId" : 1,"mobile": "%s","email": "%s","smsConsent": "%s","emailConsent": "%s","nextStepId": 1,"traits": [{"tag": "sexual", "value": "%s"},{"tag": "city", "value": "%s" },{"tag": "device", "value": "%s"}]
}

链接 DocumentDB,插入批量数据

import pymongo
myclient = pymongo.MongoClient('mongodb://dbadmin:XXX@docdb.XXXXX.docdb.cn-north-1.amazonaws.com.cn:27017/?tls=true&tlsCAFile=rds-combined-ca-cn-bundle.pem&replicaSet=rs0&readPreference=s
econdaryPreferred&retryWrites=false')
data = [{"item1":"1"},{"item2":"2"},...]
db = myclient["dbname"]
col = db.col_test01
col.insert_many(data)
并行执行
from multiprocessing import Pool
p = Pool()for i in range(5):p.apply(func=insert_data, args=())p.close()p.join()

把以上连起来的最终代码

import pymongo
import sys
from multiprocessing import Pool
import random
import jsondef insert_data():myclient = pymongo.MongoClient('mongodb://dbadmin:XXX@docdb.XXXXX.docdb.cn-north-1.amazonaws.com.cn:27017/?tls=true&tlsCAFile=rds-combined-ca-cn-bundle.pem&replicaSet=rs0&readPreference=s
econdaryPreferred&retryWrites=false')for i in range(1000):data = []db = myclient["dbname"]col = db.col_test01for j in range(1000):enum_bool = ['true', 'false']enum_sexy = ['male', 'female']enum_city = ['Beijing','Shanghai','Guangzhou','Shenzhen','Hangzhou','Wuhan']enum_device = ['IOS','Android']random_id = random.randint(0,99999999)mobile = '138%s' % random_idemail = '%s@csdn.com' % random_idsmsConsent = random.choice(enum_bool)emailConsent = random.choice(enum_bool)sexual = random.choice(enum_sexy)city = random.choice(enum_city)device = random.choice(enum_device)insertdata = '''{"Id" : 1,"mobile": "%s","email": "%s","smsConsent": "%s","emailConsent": "%s","nextId": 1,"traits": [{"tag": "sexual", "value": "%s"},{"tag": "city", "value": "%s" },{"tag": "device", "value": "%s"}]}''' % (mobile,email,smsConsent,emailConsent,sexual,city,device)json_insertdata = json.loads(insertdata)data.append(json_insertdata)col.insert_many(data)if __name__ == '__main__':p = Pool()for i in range(5):p.apply(func=insert_data, args=())p.close()p.join()

相关内容

热门资讯

玩家必看教程!智星德州扑克辅助... 玩家必看教程!智星德州扑克辅助挂多功能透视工具,好像真的是有挂(有挂详细)1、该软件可以轻松地帮助玩...
记者揭秘!wpk辅助挂多功能透... 记者揭秘!wpk辅助挂多功能透视工具,原来存在有挂(有挂猫腻)1、全新机制【wpkai辅助工具激活码...
科普!德扑圈辅助挂多功能透视工... 科普!德扑圈辅助挂多功能透视工具,总是有挂(有挂教学)1、实时德扑圈透视辅助更新:用户可以随时随地访...
玩家必备攻略!WPK辅助挂多功... 玩家必备攻略!WPK辅助挂多功能透视工具,其实存在有挂(确实有挂)1、任何WPK透视是真的假的的玩家...
分享一款!智星菠萝德州辅助挂多... 分享一款!智星菠萝德州辅助挂多功能透视工具,总是是真的有挂(有挂神器)1)智星菠萝德州辅助插件:进一...