python練習冊第三題

2022-08-03 03:48:07 字數 1768 閱讀 2058

將 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...