python 定義變量_用python解決動態的定義變量名(并給其賦值方法:大數據處理)...

前言:

今天為大家帶來的內容是:用python解決動態的定義變量名(并給其賦值方法:大數據處理)具有很好的參考價值,希望對大家有所幫助。喜歡本文內容的記得點贊轉發收藏不迷路哦!!!

最近消費kafka數據到磁盤的時候遇到了這樣的問題:

需求:每天大概有1千萬條數據,每條數據包含19個字段信息,需要將數據寫到服務器磁盤,以第二個字段作為大類建立目錄,第7個字段作為小類配合時間戳作為文件名,臨時文件后綴tmp,當每個文件的寫入條數(可配置,比如100條)達到要求條數時,將后綴tmp改為out。

問題:大類共有30個,小類不計其數而且未知,比如大類為A,小類為a

時間戳為20180606095835234則A目錄下的文件名為20180606095835234_a.tmp

這樣一來需要在此文件寫滿100條時,更新時間戳生成第二個文件名,如果此時有1000個文件都在寫則需要有1000個時間戳,和1000個計數器記錄每個文件當前的條數,如果分別定義1000個變量顯然是不劃算的。

嘗試:中間過程想到了動態定義變量名,即

  1. 定義第七個字段:seven = data.split('|')[7]
  2. 定義文件名:filename = time_stamp + '_' + seven+'.tmp',
  3. 定義文件計數器:seven + ‘_num' = 0
  4. 定義文件時間戳:seven + '_stamp' = time.time( )
  5. 想法其實是沒問題的,但是這里用到了一個不常用的語法:用一個變量名和一個字符串拼接出來一個新的變量名,并繼續賦值(不知道我的表述是否清楚),試過了用local()函數、global()函數、exec()函數都沒有達到預期效果,也許是把問題想的太復雜了
  6. 解決:最后使用三個字典將這個問題完美解決,
  7. 定義一個字典用來存計數器,字典的每一個鍵對應一個文件名,值對應當前計數,并實時更新;
  8. 定義一個字典用來存時間戳,鍵對應一個文件名,值對應時間戳,達到100條就更新一次;
  9. 定義一個字典用來存大類,鍵對應代號,值對應分類;

局部功能代碼如下:

8660f8c18accc1dca57d9978149cf6a0.png
d2b37dc5aecb624774cb0e332a17512f.png
7f32133b7ca4b7d729e995e469735714.png

結尾:

以上這篇python 解決動態的定義變量名,并給其賦值的方法(大數據處理)就是小編分享給大家的全部內容了。

最后多說一句,小編是一名python開發工程師,這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,并在后臺私信小編:“07”即可領取。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370312.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

appcan php圖片上傳,appcan文件上傳php,asp通用

首先說appcan內部實現了file標簽,我們就不用糾結這個問題了,還提供了上傳百分比哦,然后下面的方法按從上到下依次看,很簡單。上傳php,asp頁面很簡單 ,接收‘file_data’這個文件信息就可以了,如…

javascript 動態修改css樣式

方法一:改變外聯css文件,這里不講這個。 方法二:通過改變claaName來改變樣式,語法: obj.className "style2";//或者obj.setAttribute("class", "style2"); 方法三:使用obj…

POJ 3225 Help with Intervals(線段樹)

POJ 3225 Help with Intervals 題目鏈接 集合數字有的為1,沒有為0,那么幾種操作相應就是置為0或置為1或者翻轉,這個隨便推推就能夠了,然后開閉區間的處理方式就是把區間擴大成兩倍,偶數存點,奇數存線段就可…

在Spring中嵌入HSQLDB服務器實例

我一直在愉快地使用XAMPP進行開發,直到不得不將其托管在可通過Internet訪問的某個地方,供客戶端進行測試和使用。 我有一個僅具有384 RAM的VPS,并且需要快速找到一種方法,因此決定將XAMPP安裝到VPS中。 由于內存不足,因…

python與材料計算公式_《從問題到程序:用Python學編程和計算》——2.11 補充材料-阿里云開發者社區...

本節書摘來自華章計算機《從問題到程序:用Python學編程和計算》一書中的第2章,第2.11節,作者 裘宗燕,更多章節內容可以訪問云棲社區“華章計算機”公眾號查看。2.11 補充材料本書各章的主要內容將圍繞著怎樣通過編程解決計算問題…

centos 6.9 NTP基準時間服務器配置

時間服務器端 yum install ntp -y vim /etc/ntp.conf 增加允許客戶端訪問 restrict 192.168.0.0 mask 255.255.0.0 nomodify 配置成自啟動 chkconfig ntpd on service ntpd start 客戶端配置 每天對時一次 crontab -e * 2 * * * ntpdate 192.168.139.130 轉載于:https://www.cn…

hsdfz -- 6.16 -- day1

恩這回不寫游記了 按照老師要求記錄今天的心里路程:這題似乎可做期望得分150->日部分分似乎不是很顯然->a題似乎是結論題,大力猜一波結論->過不了樣例,先看b題->b題動態樹,似乎可以肝lct->不會維護重鏈&#xff0c…

課時39.細線表格(理解)

請你設計出以下圖片里的這個樣式的表格 步驟: 我先來制作一個兩行兩列的表格 2.將table里的cellspacing設置成0 外邊距是不見了,但是和我們想要完成的圖片有一定的差距,我們發現這樣做出來的圖片好像是兩條線合并到了一起一樣,實…

強制Tomcat通過SLF4J / Logback登錄

因此,您將JAR可執行Web應用程序與Tomcat捆綁在一起 (請務必先閱讀其中一個)。 但是,開頭有這些煩人的Tomcat日志,與我們的應用程序日志無關,并且不可自定義: Nov 24, 2012 11:44:02 PM org.apa…

matlab拼碎紙片過程,碎紙片拼接復原模型

1. 引言破碎文件的拼接在司法物證復原、歷史文獻修復以及軍事情報獲取等領域都有著重要的應用。企事業、機關、院校和軍隊基于保密的需要,使用碎紙機對重要文件,單據以及材料進行銷毀。一些重要的文件隨著時間流逝,殘破不全,因此&…

python實現貝葉斯分類器_python實現簡單的樸素貝葉斯分類器

本文使用的測試問題是“皮馬印第安人糖尿病問題”這個問題包括768個對于皮馬印第安患者的醫療觀測細節,記錄所描述的瞬時測量取自患者的年齡,懷孕和血液檢查的次數。所有患者都是21歲以上的女性,所有屬性都是數值型,而且屬性的單位…

VC++編譯MPIR 2.7.0

目錄 第1章編譯 2 1.1 簡介 2 1.2 下載 3 1.3 解決方案 4 1.4 創建項目 5 1.5 復制文件樹 6 1.6 不使用預編譯頭文件 8 1.7 包含目錄 9 1.8 定義宏 10 1.9 編譯前事件 11 1.10 修改 obj 的位置 13 1.11 編譯yasm 14 1.12 編譯匯編代碼 …

PHP大數據處理【轉】

1:硬件方面 普通的一個p4的服務器每天最多能支持大約10萬左右的IP,如果訪問量超過10W那么需要專用的服務器才能解決,如果硬件不給力 軟件怎么優化都是于事無補的。主要影響服務器的速度 有:網絡-硬盤讀寫速度-內存大小-cpu處理速度…

http1.X與2.0

HTTP HTTP 1.X HTTP是建立在TCP協議上的,HTTP協議的瓶頸及優化都是基于TCP協議本身的特性。TCP建立連接時有三次握手 會有1.5RTT的延遲,為了避免每次請求都經歷握手待來的延遲,應用層會選擇不同策略的http長連接。 HTTP 1.0 連接不能復用以…

php代碼清除空格注解,去除php注釋和去除空格函數分享

雖然php5中已有php_strip_whitespace方法可以返回刪除注釋和空格后的PHP源碼的功能,為了學習,這里為大家提供一個自己的方法,也可以去除代碼中的空白和注釋,代碼如下:. 代碼如下:/*** 去除代碼中的空白和注釋* param s…

包裝的重要性

我記得大約15年前開始學習Java的時候。 我讀了很多有關“包裝”和“命名空間”的東西,但我完全不了解。 可悲的是:雖然包裝的某些方面幾乎為業內每個人所了解,但其他方面卻并非如此。 因此,讓我們看一下哪些軟件包最適合。 命名空…

我的python學習筆記全集_我的python學習筆記

(此文是在實際工程中遇到的一些小問題,給予解決和整理。解決方法大多來自網上零散的文章。)1——如下代碼,a[1,2,3]bab也是[1,2,3]了,接著a[0]4a[1]5a[2]6此時a變成[4,5,6]了,再看b,a變了之后沒有對b進行新的引用&…

課時28.假鏈接(掌握)

什么是假鏈接? 就是點擊之后不會跳轉的鏈接我們稱之為假鏈接。 假鏈接存在的意義? 在企業開發前期,其他界面都沒有寫出來,那么,我們就不知道應該跳轉到什么地方,所以就只能使用假鏈接來代替,…

筆記45 | 代碼性能優化建議[轉]

地址 筆記45 | 代碼性能優化建議[轉] 目錄 前言避免創建不必要的對象選擇Static而不是Virtual常量聲明為Static Final避免內部的Getters/Setters使用增強的For循環使用包級訪問而不是內部類的私有訪問避免使用float類型使用庫函數謹慎使用native函數關于性能的誤區前言 通常來說…

導彈攔截

鏈接 分析:經典DP題,最長不下降子序列的變種,同時需要記錄路徑,用pre[]數組記錄當前結點的前一個結點的方法很妙 1 #include "iostream"2 #include "cstdio"3 #include "cstring"4 #include "…