当我尝试将指定的值导入指定的MySQL表时,我收到截断的数据警告。
这些值存储在SQL表中,减去"美国"其中一个日期有大量的" "在它之后。
如何转换值以使截断值更加合适?
: Warning: Data truncated for column 'last_count' at row 1
cur.execute('INSERT IGNORE INTO RIGCOUNT (area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count) VALUES (\"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\")',(area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count))
{'count': u'440', 'area': u'U.S.', 'change_from_prior_count': u'-3', 'last_count': u'15 April\r\n 2016', 'change_from_last_year': u'-514', 'date_of_last_year_count': u'17 April 2015', 'date_of_prior_count': u'8 April 2016'}
import scraperwiki
import requests
from bs4 import BeautifulSoup
import csv
import MySQLdb
#mysql portion
mydb = MySQLdb.connect(host='localhost',
user= '********',
passwd='*******',
db='testdb')
cur = mydb.cursor()
def store (area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count):
cur.execute('INSERT IGNORE INTO RIGCOUNT (area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count) VALUES (\"%s\",$
cur.connection.commit()
base_url = 'http://phx.corporate-ir.net/phoenix.zhtml?c=79687&p=irol-rigcountsoverview'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
table = soup.findAll('table')
rows = table[1].findAll("tr")
if len(soup.findAll('tr')) > 0:
rows = rows[1:]
for row in rows:
cells = row.findAll('td')
area = cells[0].get_text()
last_count = cells[1].get_text()
count = cells[2].get_text()
change_from_prior_count = cells[3].get_text()
date_of_prior_count = cells[4].get_text()
change_from_last_year = cells[5].get_text()
date_of_last_year_count = cells[6].get_text()
store(area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count)
data = {
'area': cells[0].get_text(),
'last_count': cells[1].get_text(),
'count': cells[2].get_text(),
'change_from_prior_count': cells[3].get_text(),
'date_of_prior_count': cells[4].get_text(),
'change_from_last_year': cells[5].get_text(),
'date_of_last_year_count': cells[6].get_text(),
}
print data
print '\n'
mydb.close()
答案 0 :(得分:0)
......其中一个日期之后有大量的“”。
您只需使用正则表达式替换多个whispace即可。
=TRIM(MID(SUBSTITUTE(A1,"""",REPT(" ",99)),297,99))