Skip to main content
 首页 » 编程设计

python之Django:使用 Urllib2 自动填充 CharField

2024年10月25日36mq0036

我正在做一个 Djnago 项目,想知道我是否可以使用我使用 Urllib2 解析的信息来快速自动填充大量数据的字段。这是我的模型

from django.db import models 
 
class Stocks(models.Model): 
    Ticker = models.CharField(max_length=250) 
    Name = models.CharField(max_length=250) 
    Exchange = models.CharField(max_length=250) 
    Industry = models.CharField(max_length=250) 
    About = models.TextField() 
 
    class Meta: 
        verbose_name_plural = "Stocks" 
 
    def __unicode__(self): 
        return self.Ticker 

到目前为止,我已经使用 CSV 中的数据来填充字段,“Ticker”、“Name”和“Exchange”,就像这样(uisng“python manage.py shell”):

import csv 
from stocks.models import Stocks 
fields = ["Ticker", "Name", "Exchange"] 
for row in csv.reader(open('NASDAQ.csv', 'rU'), dialect='excel'): 
    Stocks.objects.create(**dict(zip(fields, row))) 

我想知道是否可以像从 urllib2 中提取数据一样自动填充“Industry”字段。这是我的相关 urllib2 代码:

indusCode = urllib2.urlopen("http://finance.yahoo.com/q/in?s="+t).read() 
industry = indusCode.split('<b>Industry: ')[1].split('</b>')[0] 
industry = industry.replace("&amp;", "&")  

有人知道我是否可以使用从 urllib2 中提取的数据来填充“行业”字段?谢谢

请您参考如下方法:

当然可以。

import csv 
from stocks.models import Stocks 
fields = ["Ticker", "Name", "Exchange"] 
for row in csv.reader(open('NASDAQ.csv', 'rU'), dialect='excel'): 
    row_dict = dict(zip(fields, row)) 
    indusCode = urllib2.urlopen("http://finance.yahoo.com/q/in?s=" + row_dict['Ticker']).read() 
    industry = indusCode.split('<b>Industry: ')[1].split('</b>')[0] 
    industry = industry.replace("&amp;", "&")  
    row_dict['Industry'] = industry 
    Stocks.objects.create(**row_dict) 

还没有测试过。但我相信类似的东西应该有用。