python映射
1. python怎麼映射微博昵稱和id號,想爬新浪微博數據。
不清楚你問的是哪個環節的映射。
如果要在線通過昵稱找id,可以通過新浪微博搜索昵稱,從昵稱列表裡找你需要的用戶。
如果是已有的昵稱和id列表,可以在代碼里做一個字典、列表之類的數據結構,實現兩者之間的相互對照查找。
2. python如何對字元串中的字元進行映射
在Python中字元串是不可改變的對象(immutable),因此無法直接修改字元串的某一位字元。
一種可行的方式,是將字元串轉換為列表,修改列表的元素後,在重新連接為字元串。
示例代碼如下:
s = 'abcdefghijk' #原字元串l = list(s) #將字元串轉換為列表,列表的每一個元素為一個字元l[1] = 'z' #修改字元串的第1個字元為znewS = ''.join(l) #將列表重新連接為字元串print(newS)#azcdefghijk #修改後的字元串
3. python 如何將列表數據 一對多 進行對應
如果ID是0,1,2,3...規則的
列表嵌套就可以了
[["張三","李四"],["張三"],["王五","張三"],["趙六","周一"]]
如果ID不規則,用字典
{0:["張三","李四"],1:["張三"],2:["王五","張三"],3:["趙六","周一"]}
4. python元組元素 如何一一映射
print([(x,y) for x in a for y in b])
5. 哪些python 類型是按照順序訪問的,它們和映射類型的不同是什麼
list,tuple可以按照順序訪問,set,dict等映射類型是用鍵訪問的,沒有特定的順序
6. python怎麼寫個映射盤符一鍵生成
使用subst命令啊。這個是老的DOS命令,不過現在仍然可以使用。
你可以使用python的os.system來執行。
7. python oracle 查詢結果怎麼映射為對象
安裝好了cx_Oracle.msi Mysql.msi 下載安裝 xlwt-0.7.5.tar.gz, 到安裝目錄下 命令窗口cmd下執行 Python setup.py install即可
被引用的文件:
[html] view plain
# coding: utf-8
# xlswriter.py
# http://pypi.python.org/pypi/xlwt
import xlwt
class XLSWriter(object):
"""A XLS writer that proces XLS files from unicode data.
"""
def __init__(self, file, encoding='utf-8'):
# must specify the encoding of the input data, utf-8 default.
self.file = file
self.encoding = encoding
self.wbk = xlwt.Workbook()
self.sheets = {}
def create_sheet(self, sheet_name='sheet'):
"""Create new sheet
"""
if sheet_name in self.sheets:
sheet_index = self.sheets[sheet_name]['index'] + 1
else:
sheet_index = 0
self.sheets[sheet_name] = {'header': []}
self.sheets[sheet_name]['index'] = sheet_index
self.sheets[sheet_name]['sheet'] = self.wbk.add_sheet('%s%s' % (sheet_name, sheet_index if sheet_index else ''), cell_overwrite_ok=True)
self.sheets[sheet_name]['rows'] = 0
def cell(self, s):
if isinstance(s, basestring):
if not isinstance(s, unicode):
s = s.decode(self.encoding)
elif s is None:
s = ''
else:
s = str(s)
return s
def writerow(self, row,xlsstyle, sheet_name='sheet'):
if sheet_name not in self.sheets:
# Create if does not exist
self.create_sheet(sheet_name)
if self.sheets[sheet_name]['rows'] == 0:
self.sheets[sheet_name]['header'] = row
if self.sheets[sheet_name]['rows'] >= 65534:
self.save()
# create new sheet to avoid being greater than 65535 lines
self.create_sheet(sheet_name)
if self.sheets[sheet_name]['header']:
self.writerow(self.sheets[sheet_name]['header'], sheet_name)
for ci, col in enumerate(row):
#self.sheets[sheet_name]['sheet'].col(col).width=0x0d00
self.sheets[sheet_name]['sheet'].write(self.sheets[sheet_name]['rows'], ci, self.cell(col) if type(col) != xlwt.ExcelFormula.Formula else col,xlsstyle)
self.sheets[sheet_name]['rows'] += 1
def writerows(self, rows,style, sheet_name='sheet'):
for row in rows:
self.writerow(row,style, sheet_name)
def save(self):
self.wbk.save(self.file)
if __name__ == '__main__':
# test
xlswriter = XLSWriter(u'陝西.xls')
ft=xlwt.Font()
ft.height =0x00C8
ft.bold = True
ft1=xlwt.Font()
ft1.bold=False
style0=xlwt.XFStyle()
style0.font=ft
style1=xlwt.XFStyle()
style1.font=ft1
xlswriter.writerow(['姓名', '年齡', '電話', 'QQ'], style0,sheet_name=u'基本信息')
xlswriter.writerow(['張三', '30', '13512345678', '123456789'],style1, sheet_name=u'基本信息')
xlswriter.writerow(['學校', '獲得學位', '取得學位時間'], style0,sheet_name=u'學習經歷')
xlswriter.writerow(['西安電子科技大學', '學士', '2009'],style1, sheet_name=u'學習經歷')
xlswriter.writerow(['西安電子科技大學', '碩士', '2012'], style1,sheet_name=u'學習經歷')
xlswriter.writerow(['王五', '30', '13512345678', '123456789'],style1, sheet_name=u'基本信息')
# don't forget to save data to disk
xlswriter.save()
print 'finished.'
連接Oracle並生成excel
[python] view plain
#! /usr/bin/env python
#coding=utf-8
import xlwt,cx_Oracle,datetime,MySQLdb
from XLSWriter import XLSWriter
__s_date = datetime.date(1899, 12, 31).toordinal()-1
'''''
Excel中的日期為浮點數則轉為標准日期格式
'''
def getdate(date):
if isinstance(date, float):
date = int(date)
d = datetime.date.fromordinal(__s_date + date)
return d.strftime("%Y%m%d")
def getYesterday():
'''''
昨天
'''
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday
print getYesterday().strftime("%Y-%m-%d")
'''''
獲取GIPAP、TIPAP新批再批患者名單
'''
def getGipapTipapNewReactivePass (sql):
try:
db=cx_Oracle.connect("user","pwd",'192.168.1.1:1521/orcl')
cursor=db.cursor()
SQLTEXT=sql
rslist=[]
rs=cursor.execute(SQLTEXT)
rslist=rs.fetchall()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
cursor.close()
db.close()
return rslist
'''''
將查詢結果集寫入xls文件
'''
def writeDateToXls(xlaname,style,paptype,papname):
gsql=u"select t.pchinesename,t.pmobile,t.pphone,t.pplanbegindate,d.dname from (select m.mrpatient,m.mrplanbegintime,m.mrplanendtime,m.mrendtime,m.mrbegintime from tb_ m "
mailtype=1
newplan=' '
#注意,這里的變數passtype passpap 即為導出後的excel前兩列值 ulipad編輯器此處不能用中文,未解決 經測試 EitPlus編輯器正常 如:passtype=u'再批'
passtype='Reactive'
domain=1
passpap='gipap'
gsql+=u"where m.mrmailtype="+str(mailtype)+ str(newplan) +" and f_domain_by_pid(m.mrpatient)="+str(domain)+" and status='1' and m.mrendtime =(to_char(trunc(sysdate-1),'yyyy-mm-dd'))) a "
gsql+="left join tb_ t on t.pid=a.mrpatient "
gsql+="left join dm_ p on p.pid=t.pplan "
gsql+="left join tb_ e on e.eid=t.pcsa "
gsql+="left join tb_ j on j.jemployee=t.pcsa "
gsql+="left join tb_ d on d.did=j.jdepartment "
gsql+="where d.dstatus='A' and j.jstatus='A' and e.estatus='A' "
print gsql
#print papname+passtype
rslist=[]
rslist=getGipapTipapNewReactivePass(gsql)
print len(rslist)
xlswriter.writerow(['批註類型','葯品名稱','患者姓名','手機','固話','批准時間(援助開始時間)','發葯點'],style0, sheet_name=papname+passtype)
#這里設置樣式
for p in rslist:
xlswriter.writerow([passtype,passpap,
'' if p[0] is None else p[0].decode('gbk').encode('utf-8'),
'' if p[1] is None else p[1].decode('gbk').encode('utf-8'),
'' if p[2] is None else p[2].decode('gbk').encode('utf-8'),
'' if p[3] is None else p[3].decode('gbk').encode('utf-8'),
'' if p[4] is None else p[4].decode('gbk').encode('utf-8')],style, sheet_name=papname+passtype)
del rslist[:]
if __name__ == '__main__':
#don't forget to save data to disk
ft=xlwt.Font()
ft.height =0x00C8
ft.bold = True
ft1=xlwt.Font()
ft1.bold=False
style0=xlwt.XFStyle()
style0.font=ft
style1=xlwt.XFStyle()
style1.font=ft1
createdate=str(datetime.datetime.now().strftime('%Y%m%d' ))
xlsname=u'GIPAP_NEW_PATIENT_再批患者'+str(createdate)+'.xls'
#xlswriter=XLSWriter(xlsname)
xlswriter=XLSWriter(u'F:\\payton\\再批患者報告\\'+xlsname)
writeDateToXls(xlsname,style1,'Reactive','GIPAP')
xlswriter.save()
print 'finished.'
控制台輸出:
excel導出數據:
8. python對兩個list中的所有對應元素進行數學運算
可以對第二個list的元素進行遍歷,檢查是否出現在第二個list當中,如果使用表理解,可以使用一行代碼完成任務。 list1 = [1,2,3,4,5]list2 = [4,5,6,7,8]print [l for l in list1 if l in list2]# [4,5]如果每一個列表中均沒有重復的元素
9. python如何實現兩個nat映射的ip相互信任
如果A和B兩個部分都初始化了TCP連接,NAT設備就會認為它們之間是相互信任的,也... 2.在一個區域網中做一個IP映射,映射一個公網IP,另外一個區域網訪問這個IP就是公網... 客戶端:a,b 伺服器端(公網)c a發送消息給c,同時c拿到a的ip埠等信息。
10. python中如何把兩個list映射成一個dictionary
dict(zip(a,b))