我的源資料為:
a = 'drop-DINIW,美元指數,94.51,94.58,94.65,94.47,-0.07,13:23:39,'
會變化的是drop,變成raise,后面的每個數字也會變,不變的是【-DINIW,美元指數,】,還有最后面的時間格式,我只需要判斷是不是有這樣的就行,主要用來做一個api的資料入庫校驗,我入庫有有其他的資料就不對,不知道怎么去實行,有哪位大神知道嗎
uj5u.com熱心網友回復:
還有倒數第二位的數字如果前面是drop則為負值。raise則為正值uj5u.com熱心網友回復:


uj5u.com熱心網友回復:
有點復雜,不知道有沒有大牛有簡單的方式:# -*- coding: utf-8 -*-
import re
a = 'drop-DINIW,美元指數,94.51,94.58,94.65,94.47,-0.07,13:23:39,'
def findS(string, cnt):
l = a.split(',',cnt)
if len(l) <= cnt:
return -1
return len(string)-len(l[-1])-len(',')
if re.match(r"(drop|raise)-DINIW,美元指數,(-?\d+\.?\d*e?-?\d*?),(-?\d+\.?\d*e?-?\d*?),(-?\d+\.?\d*e?-?\d*?),(-?\d+\.?\d*e?-?\d*?),(-?\d+\.?\d*e?-?\d*?),(\d{1,2}:\d{1,2}:\d{1,2}),\Z",a):
tar = a[0:a.index('-DINIW')]
begin = findS(a,6)
end = findS(a,7)
val=a[begin+1:end]
if tar == 'drop':
if float(val) < 0:
print(a)
else:
print('No match')
elif tar == 'raise':
if float(val) > 0:
print(a)
else:
print('No match')
else:
print('No match')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135277.html
上一篇:基礎篇:深入決議JAVA反射機制
下一篇:阿里云短信介面
