随机生成1千万json数据并插入pg数据库中
时间: 2023-11-27 19:52:35 浏览: 85
以下是使用Python生成1千万个JSON数据并插入PostgreSQL数据库的示例代码:
```python
import json
import random
import string
import psycopg2
# 生成随机字符串
def random_string(length):
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
# 生成随机JSON数据
def random_json():
data = {
'id': random.randint(1, 100000000),
'name': random_string(10),
'age': random.randint(18, 60),
'email': random_string(10) + '@example.com',
'phone': ''.join(str(random.randint(0, 9)) for _ in range(11)),
'address': {
'street': random_string(10),
'city': random_string(8),
'state': random_string(6),
'zipcode': ''.join(str(random.randint(0, 9)) for _ in range(6))
}
}
return json.dumps(data)
# 连接PostgreSQL数据库
conn = psycopg2.connect(database="your_database_name", user="your_username", password="your_password", host="your_host", port="your_port")
cursor = conn.cursor()
# 插入数据
for i in range(10000000):
data = random_json()
cursor.execute("INSERT INTO your_table_name (data) VALUES (%s)", (data,))
if i % 100000 == 0:
conn.commit()
print(f"Inserted {i} records")
# 提交事务并关闭连接
conn.commit()
conn.close()
```
在上面的代码中,我们使用了Python内置的`json`模块来生成随机的JSON数据,并使用`psycopg2`模块连接和操作PostgreSQL数据库。我们还定义了一个`random_string`函数来生成随机字符串。
在主程序中,我们通过循环生成1千万个JSON数据,并使用`cursor.execute`方法将其插入到数据库中。为了提高性能,我们每隔10万条记录提交一次事务,并打印出插入记录的数量。最后,我们提交事务并关闭连接。
阅读全文