將 0001 題生成的 200 個啟用碼(或者優惠券)儲存到 redis 非關係型資料庫中。
難點是壓根不知道redis怎麼用。好在找到了一些文章快速學了些:
使用python操作redis
python: redis介紹及簡單應用
python(十一)下:redis安裝配置及使用詳解
安裝redis
包,就可以開始用了。
mport redis
import base64
import re
# 查詢
def query(r, name, key):
return r.hget(name=name, key=key)
if __name__ == '__main__':
dict = {}
r = redis.redis(host='127.0.0.1', port=6379, db=0)
with open('coupon.txt', 'r') as fp:
for line in fp.readlines():
s = base64.urlsafe_b64decode(line.encode('utf-8'))
id = re.findall(r'.*/.*:(.*)\'', str(s))
r.hset(name='coupon', key=line.strip(), value=id)
redis雜湊儲存可以用下表表示,這是從別人部落格抄過來的:
name hash
|````````````|
n1 --------> | k1 --> v1 |
| k2 --> v2 |
|____________|
|````````````|
n2 --------> | k7 --> v7 |
|____________|
這樣子儲存後在redis中只有乙個key就是coupon
,相關的查詢操作都是在這個key上。
redis相關操作記錄
切換db:select+n
清除快取:`flushdb' or 'flushall'
ps: 大同小異,竊喜
import redis
import base64
import re
def make_connect():
r = redis.redis(host='127.0.0.1', port=6379, db=1)
return r
def parse_coupon(c_code):
return base64.urlsafe_b64decode(c_code.encode('utf-8'))
def upload_to_database():
session = make_connect()
with open('coupon.txt', 'r') as file:
for line in file.readlines():
c_id = re.findall(r'.*/.*:(.*)\'', str(parse_coupon(line)))
session.set(c_id.pop(), line.strip())
if __name__ == '__main__':
upload_to_database()
python練習冊(三)
hi,小編本週又來送練習題了,程式設計肯定要多多練習啦!題目 輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析 以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。輸入某年某月某日,判斷這一天是這一年的第幾天?year i...
python練習冊0004題
在任意乙個英文文件中,統計單詞出現的次數,分析 本題不是很難,單詞通常以空格隔開,但是有些單詞後面跟一些特殊符號,只需把這些特殊符號替換掉就可以了,一 1 importre2 3 file name code.txt 4 5 lines count 0 6 words count 0 7 chars...
python練習冊 第0002題
將 0001 題生成的 200 個啟用碼 或者優惠券 儲存到 mysql 關係型資料庫中。這道題是送分題,就是讓人熟悉一下鏈結資料庫以及mysql的使用。import pymysql import random import string def generate length s join ran...