2015-12-15 68 views
0

我需要在python編程語言的幫助下使用sql中的給定sql-schema創建隨機條目。如何使用python創建數據庫中的隨機條目

有沒有一種簡單的方法來做到這一點,還是我必須編寫自己的發電機?

+3

有被稱爲'create_random_entries_in_database'沒有內置的功能,但有['random'模塊(https://docs.python.org/2/ library/random.html),你可以使用;) – zvone

+0

@Marcel我的解決方案是否適合你? – arekolek

回答

2

您可以使用維基百科作爲數據源。選擇與您的模式相關的類別並從這些類別中選擇隨機文章。

爲了方便,此代碼使用requests訪問CatScan。也許有一個圖書館可以做同樣的事情(返回維基百科分類中的頁面),但編寫這段簡短的代碼比找到一個簡單。

choice從列表中選擇一個隨機元素。

from random import choice 
from requests import post 


def title(page): 
    return page['a']['title'].split('(')[0].replace('_', ' ').strip() 


def category(name, depth=0): 
    url = 'https://tools.wmflabs.org/catscan2/catscan2.php' 
    payload = { 
    'categories': name, 
    'depth': depth, 
    'format': 'json', 
    'doit': 'Do it!', 
    } 
    category = post(url, data=payload).json()['*'][0]['a']['*'] 
    return [title(page) for page in category] 


first = category('Italian masculine given names') 
last = category('Surnames of Italian origin') 
work = category('Organized crime members by role') 

for i in range(10): 
    print(*map(choice, (first, last, work)), sep=',') 

其結果是:

$ python random_data.py | column -t -s, 
Santino  Comolli  Boss 
Constantino Furlan  Made man 
Ernesto  Forlán  Consigliere 
Silvestro Gherardi Informant 
Adelmo  Mancuso  Bagman 
Giuliano  Paganelli Made man 
Renato  Barberis Capobastone 
Roberto  Comollo  Consigliere 
Dario  Speroni  Consigliere 
Gastone  Pestalozzi Underboss 
相關問題