Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产精品综合在线,国产成人综合久久亚洲精品,国产无遮挡猛进猛出免费软件

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          javascript 知識普及之 FormData

          . 概述

          FormData類型其實是在XMLHttpRequest 2級定義的,它是為序列化表以及創(chuàng)建與表單格式相同的數(shù)據(jù)(當(dāng)然是用于XHR傳輸)提供便利。

          2. 構(gòu)造函數(shù)

          創(chuàng)建一個formData對象實例有幾種方式

          1、創(chuàng)建一個空對象實例

          var formData = new FormData();

          此時可以調(diào)用append()方法來添加數(shù)據(jù)

          2、使用已有的表單來初始化一個對象實例

          假如現(xiàn)在頁面已經(jīng)有一個表單

          <form id="myForm" action="" method="post">
              <input type="text" name="name">名字
              <input type="password" name="psw">密碼
              <input type="submit" value="提交">
          </form>

          我們可以使用這個表單元素作為初始化參數(shù),來實例化一個formData對象

          // 獲取頁面已有的一個form表單
          var form = document.getElementById("myForm");
          // 用表單來初始化
          var formData = new FormData(form);
          // 我們可以根據(jù)name來訪問表單中的字段
          var name = formData.get("name"); // 獲取名字
          var psw = formData.get("psw"); // 獲取密碼
          // 當(dāng)然也可以在此基礎(chǔ)上,添加其他數(shù)據(jù)
          formData.append("token","kshdfiwi3rh");

          3. 操作方法

          首先,我們要明確formData里面存儲的數(shù)據(jù)形式,一對key/value組成一條數(shù)據(jù),key是唯一的,一個key可能對應(yīng)多個value。如果是使用表單初始化,每一個表單字段對應(yīng)一條數(shù)據(jù),它們的HTML name屬性即為key值,它們value屬性對應(yīng)value值。

          3.1 獲取值

          我們可以通過get(key)/getAll(key)來獲取對應(yīng)的value,

          formData.get("name"); // 獲取key為name的第一個值
          formData.get("name"); // 返回一個數(shù)組,獲取key為name的所有值

          3.2 添加數(shù)據(jù)

          我們可以通過append(key, value)來添加數(shù)據(jù),如果指定的key不存在則會新增一條數(shù)據(jù),如果key存在,則添加到數(shù)據(jù)的末尾

          formData.append("k1", "v1");
          formData.append("k1", "v2");
          formData.append("k1", "v1");
          
          formData.get("k1"); // "v1"
          formData.getAll("k1"); // ["v1","v2","v1"]

          3.3 設(shè)置修改數(shù)據(jù)

          我們可以通過set(key, value)來設(shè)置修改數(shù)據(jù),如果指定的key不存在則會新增一條,如果存在,則會修改對應(yīng)的value值。

          formData.append("k1", "v1");
          formData.set("k1", "1");
          formData.getAll("k1"); // ["1"]

          3.4 判斷是否該數(shù)據(jù)

          我們可以通過has(key)來判斷是否對應(yīng)的key值

          formData.append("k1", "v1");
          formData.append("k2",null);
          
          formData.has("k1"); // true
          formData.has("k2"); // true
          formData.has("k3"); // false

          3.5 刪除數(shù)據(jù)

          通過delete(key),來刪除數(shù)據(jù)

          formData.append("k1", "v1");
          formData.append("k1", "v2");
          formData.append("k1", "v1");
          formData.delete("k1");
          
          formData.getAll("k1"); // []

          3.6 遍歷

          我們可以通過entries()來獲取一個迭代器,然后遍歷所有的數(shù)據(jù),

          formData.append("k1", "v1");
          formData.append("k1", "v2");
          formData.append("k2", "v1");
          
          var i = formData.entries();
          
          i.next(); // {done:false, value:["k1", "v1"]}
          i.next(); // {done:fase, value:["k1", "v2"]}
          i.next(); // {done:fase, value:["k2", "v1"]}
          i.next(); // {done:true, value:undefined}

          可以看到返回迭代器的規(guī)則

          1. 每調(diào)用一次next()返回一條數(shù)據(jù),數(shù)據(jù)的順序由添加的順序決定
          2. 返回的是一個對象,當(dāng)其done屬性為true時,說明已經(jīng)遍歷完所有的數(shù)據(jù),這個也可以作為判斷的依據(jù)
          3. 返回的對象的value屬性以數(shù)組形式存儲了一對key/value,數(shù)組下標(biāo)0為key,下標(biāo)1為value,如果一個key值對應(yīng)多個value,會變成多對key/value返回

          我們也可以通過values()方法只獲取value值

          formData.append("k1", "v1");
          formData.append("k1", "v2");
          formData.append("k2", "v1");
          
          var i = formData.entries();
          
          i.next(); // {done:false, value:"v1"}
          i.next(); // {done:fase, value:"v2"}
          i.next(); // {done:fase, value:"v1"}
          i.next(); // {done:true, value:undefined}

          4. 發(fā)送數(shù)據(jù)

          我們可以通過xhr來發(fā)送數(shù)據(jù)

          var xhr = new XMLHttpRequest();
          xhr.open("post","login");
          xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          xhr.send(formData);

          這種方式可以來實現(xiàn)文件的異步上傳。

          5. 其他

          瀏覽器兼容性查詢:https://caniuse.com/#search=formdata

          英文文檔:https://developer.mozilla.org/en-US/docs/Web/API/FormData


          轉(zhuǎn)自:https://segmentfault.com/a/1190000006716454

          本Pandas教程中,我們將詳細介紹如何使用Pandas read_html方法從HTML中獲取數(shù)據(jù)。首先,在最簡單的示例中,我們將使用Pandas從一個字符串讀取HTML。其次,我們將通過幾個示例來使用Pandas read_html從Wikipedia表格中獲取數(shù)據(jù)。在之前的一篇文章(關(guān)于Python中的探索性數(shù)據(jù)分析)中,我們也使用了Pandas從HTML表格中讀取數(shù)據(jù)。

          在Python中導(dǎo)入數(shù)據(jù)

          在開始學(xué)習(xí)Python和Pandas時,為了進行數(shù)據(jù)分析和可視化,我們通常從實踐導(dǎo)入數(shù)據(jù)開始。在之前的文章中,我們已經(jīng)了解到我們可以直接在Python中輸入值(例如,從Python字典創(chuàng)建Pandas dataframe)。然而,通過從可用的源導(dǎo)入數(shù)據(jù)來獲取數(shù)據(jù)當(dāng)然更為常見。這通常是通過從CSV文件或Excel文件中讀取數(shù)據(jù)來完成的。例如,要從一個.csv文件導(dǎo)入數(shù)據(jù),我們可以使用Pandas read_csv方法。這里有一個如何使用該方法的快速的例子,但一定要查看有關(guān)該主題的博客文章以獲得更多信息。

          現(xiàn)在,上面的方法只有在我們已經(jīng)有了合適格式的數(shù)據(jù)(如csv或JSON)時才有用(請參閱關(guān)于如何使用Python和Pandas解析JSON文件的文章)。

          我們大多數(shù)人會使用Wikipedia來了解我們感興趣的主題信息。此外,這些Wikipedia文章通常包含HTML表格。

          要使用pandas在Python中獲得這些表格,我們可以將其剪切并粘貼到一個電子表單中,然后,例如使用read_excel將它們讀入Python。現(xiàn)在,這個任務(wù)當(dāng)然可以用更少的步驟來完成:我們可以通過web抓取來對它進行自動化。一定要查看一下什么是web抓取。

          先決條件

          當(dāng)然,這個Pandas讀取HTML教程將要求我們安裝Pandas及其依賴項。例如,我們可以使用pip來安裝Python包,比如Pandas,或者安裝一個Python發(fā)行版(例如,Anaconda、ActivePython)。下面是如何使用pip安裝Pandas: pip install pandas。

          注意,如果出現(xiàn)消息說有一個更新版本的pip可用,請查看這篇有關(guān)如何升級pip的文章。注意,我們還需要安裝lxml或BeautifulSoup4,當(dāng)然,這些包也可以使用pip來安裝: pip install lxml。

          Pandas read_html 語法

          下面是如何使用Pandas read_html從HTML表格中抓取數(shù)據(jù)的最簡單的語法:

          現(xiàn)在我們已經(jīng)知道了使用Pandas讀取HTML表格的簡單語法,接下來我們可以查看一些read_html示例。

          Pandas read_html 示例1:

          第一個示例是關(guān)于如何使用Pandas read_html方法的,我們將從一個字符串讀取HTML表格。

          現(xiàn)在,我們得到的結(jié)果不是一個Pandas DataFrame,而是一個Python列表。也就是說,如果我們使用type函數(shù),我們可以看到:

          如果我們想得到該表格,我們可以使用列表的第一個索引(0)

          Pandas read_html 示例 2:

          在第二個Pandas read_html示例中,我們將從Wikipedia抓取數(shù)據(jù)。實際上,我們將得到蟒科蛇(也稱為蟒蛇)的HTML表格。

          現(xiàn)在,我們得到了一個包含7個表(len(df))的列表。如果我們?nèi)ikipedia頁面,我們可以看到第一個表是右邊的那個。然而,在本例中,我們可能對第二個表更感興趣。

          Pandas read_html 示例 3:

          在第三個示例中,我們將從瑞典的covid-19病例中讀取HTML表。這里,我們將使用read_html方法的一些附加參數(shù)。具體來說,我們將使用match參數(shù)。在此之后,我們還需要清洗數(shù)據(jù),最后,我們將進行一些簡單的數(shù)據(jù)可視化操作。

          使用Pandas read_html和匹配參數(shù)抓取數(shù)據(jù):

          如上圖所示,該表格的標(biāo)題為:“瑞典各郡新增COVID-19病例”。現(xiàn)在,我們可以使用match參數(shù)并將其作為一個字符串輸入:

          通過這種方式,我們只得到這個表,但它仍然是一個dataframes列表。現(xiàn)在,如上圖所示,在底部,我們有三個需要刪除的行。因此,我們要刪除最后三行。

          使用Pandas iloc刪除最后的行

          現(xiàn)在,我們將使用Pandas iloc刪除最后3行。注意,我們使用-3作為第二個參數(shù)(請確保你查看了這個Panda iloc教程,以獲得更多信息)。最后,我們還創(chuàng)建了這個dataframe的一個副本。

          在下一節(jié)中,我們將學(xué)習(xí)如何將多索引列名更改為單個索引。

          將多索引更改為單個索引并刪除不需要的字符

          現(xiàn)在,我們要去掉多索引列。也就是說,我們將把2列索引(名稱)變成唯一的列名。這里,我們將使用DataFrame.columns 和 DataFrame.columns,get_level_values:

          最后,正如你在“date”列中所看到的,我們使用Pandas read_html從WikiPedia表格抓取了一些注釋。接下來,我們將使用str.replace方法和一個正則表達式來刪除它們:

          使用Pandas set_index更改索引

          現(xiàn)在,我們繼續(xù)使用Pandas set_index將日期列變成索引。這樣一來,我們稍后就可以很容易地創(chuàng)建一個時間序列圖。

          現(xiàn)在,為了能夠繪制這個時間序列圖,我們需要用0填充缺失的值,并將這些列的數(shù)據(jù)類型更改為numeric。這里我們也使用了apply方法。最后,我們使用cumsum方法來獲得列中每個新值累加后的值:

          來自HTML表格的時間序列圖

          在最后一個示例中,我們使用Pandas read_html獲取我們抓取的數(shù)據(jù),并創(chuàng)建了一個時間序列圖。現(xiàn)在,我們還導(dǎo)入了matplotlib,這樣我們就可以改變Pandas圖例的標(biāo)題的位置:

          結(jié)論: 如何將HTML讀取到一個 Pandas DataFrame

          在這個Pandas教程中,我們學(xué)習(xí)了如何使用Pandas read_html方法從HTML中抓取數(shù)據(jù)。此外,我們使用來自一篇Wikipedia文章的數(shù)據(jù)來創(chuàng)建了一個時間序列圖。最后,我們也可以通過參數(shù)index_col來使用Pandas read_html將' Date '列設(shè)置為索引列。

          英文原文:https://www.marsja.se/how-to-use-pandas-read_html-to-scrape-data-from-html-tables
          譯者:一瞬

          avaScript中的數(shù)據(jù)類型分為兩大類,分別是基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型(或稱為引用數(shù)據(jù)類型),如圖所示。

          本節(jié)重點講解基本數(shù)據(jù)類型。下面我們用代碼演示基本數(shù)據(jù)類型的使用。

          (1)數(shù)字型(Number),包含整型值和浮點型值:

          var numl = 21;                          //整型值 
          var num2 = 0.21;                         //浮點型值

          (2)布爾型(Boolean),包含 true 和false 兩個布爾值 :

          var booll = true;                  //表示真、1、成立
          var bool2 = false;                 // 表示假、0、不成立

          (3)字符串型(String),用單引號或雙引號包裹:

          var strl = '';                    //空字符串
          var str2 = 'abc';                 //單引號包裹的字符串 abc
          var str3 = "abc";                 //雙引號包裹的字符串 abc

          (4)未定義型(Undefined),只有一個值 undefined :

          var a;                           // 聲明變量 a,未賦值,此時 a就是undefined
          var b = undefined;               //變量b的值為 undefined

          (5)定型(Null),只有一個值null:

          var a = null;                   //變量a的值為nu11

          需要注意的是,代碼中的值 tue、false、undefined和null全部都要寫成小寫字母。


          主站蜘蛛池模板: 成人无码AV一区二区| 三上悠亚国产精品一区| 亚洲AV日韩综合一区尤物| 福利一区二区视频| 亚洲视频在线一区| 久久精品国产一区二区| 国产精品视频一区| 亚洲精品精华液一区二区| 亚洲天堂一区二区| 国产在线精品一区二区中文| 国产成人片视频一区二区| 国产在线无码视频一区| 亚洲av无码一区二区三区天堂 | 亚洲国产精品无码第一区二区三区 | 亚洲欧洲一区二区| 国产亚洲一区区二区在线| 一区二区不卡久久精品| 亚洲A∨精品一区二区三区 | 精品一区二区三区波多野结衣| 久久精品国产一区二区| 久久精品中文字幕一区| 大伊香蕉精品一区视频在线 | 亚洲福利视频一区| 久久精品动漫一区二区三区| 亚洲爆乳无码一区二区三区| 精品视频一区二区三区在线观看| 国精产品一区一区三区免费视频| 久久精品人妻一区二区三区| 久久一区二区免费播放| 在线精品亚洲一区二区三区| 熟妇人妻一区二区三区四区| 久久综合精品国产一区二区三区| 国产在线精品一区二区夜色| 亚洲一区爱区精品无码| 亚洲午夜精品一区二区| 亚洲av无码成人影院一区| 福利国产微拍广场一区视频在线 | 正在播放国产一区| 无码人妻一区二区三区精品视频 | 亚洲国产成人久久一区二区三区| 在线视频一区二区三区四区|