的数据是否为请求获取随机用户并将其添加到我的数据库进行测试。 不幸的是,其中一些数据不是英文的。检查包含a-z或A-Z
例子。
导致错误数据,并打破我的表,我正在呈现。
我想
检查API的数据,看看,这是一个英文字符。 如果是,请将其插入数据库,否则,退出系统。
if firstname.isalpha():
cur.execute(sql,args)
else:
sys.exit()
但由于某些原因,它仍然插入:(
任何提示/在这个问题上的建议将意味着很多,我。
我
#!/usr/bin/python
import MySQLdb
import random
import requests
import time
import sys
import datetime
from random import randrange
from datetime import timedelta
from time import gmtime, strftime
def random_date(start, end):
"""
This function will return a random datetime between two datetime
objects.
"""
delta = end - start
int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
random_second = randrange(int_delta)
return start + timedelta(seconds=random_second)
d1 = datetime.datetime.strptime('2016-03-27 11:16:32', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime(strftime('%Y-%m-%d %H:%M:%S', gmtime()), '%Y-%m-%d %H:%M:%S')
print strftime("%m/%d/%Y %I:%M %p", gmtime())
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="root", # your username
passwd="*********", # your password
db="db-local") # name of the data base
# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()
# The first line is defined for specified vendor
mac = [ 0x00, 0x24, 0x81,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
device_mac = ':'.join(map(lambda x: "%02x" % x, mac))
device_mac = device_mac.replace(":","").upper()
cpe_mac = '000D6766F2F6'
url = "https://randomuser.me/api/"
data = requests.get(url).json()
firstname = data['results'][0]['user']['name']['first']
lastname = data['results'][0]['user']['name']['last']
email = data['results'][0]['user']['email']
gender = data['results'][0]['user']['gender']
age_range_options = ["<15", "15-25", "25-40","40+"]
age_range = random.choice(age_range_options)
ip = ".".join(map(str, (random.randint(0, 255)
for _ in range(4))))
host_name = 'crontab'
os = 'iPhone OS 9.0'
visit_count = 1
rand_date = random_date(d1, d2);
created_at = time.strftime('%Y-%m-%d %H:%M:%S')
updated_at = time.strftime('%Y-%m-%d %H:%M:%S')
sql = ('''INSERT INTO visitors (device_mac,cpe_mac,firstname, lastname, email, gender, age_range,ip,host_name,os,visit_count,created_at, updated_at) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)''')
args = (device_mac,cpe_mac, firstname, lastname, email, gender, age_range,ip, host_name,os,visit_count, created_at, updated_at)
if firstname.isalpha():
cur.execute(sql,args)
else:
sys.exit()
db.commit()
db.close()
将“prfzfndfj”视为合适的英语吗? – timgeb
“_That导致数据错误_”。怎么会这样?它对我来说看起来像一个完全合法的名字。考虑修复你的图表,以便它们可以呈现任何类型的文本,而不是将输入限制为它当前可以呈现的文本类型。 – Kevin
任何包含英文字母的东西。我会很高兴。 – ihue