當前位置:首頁 » 編程語言 » pythonlisttojson

pythonlisttojson

發布時間: 2023-03-07 17:11:15

A. python3 讀excel轉Json文件

from xlrd import *

import json

# 參考1-字典、列表轉JSON:https://www.cnblogs.com/longchang/p/10904850.html

# 參考2-JSON直接保存到文件:https://www.cnblogs.com/miyatest/p/9603897.html

# 從excel讀取數據存放到列表中

def readExcel():

    keyData=[]   # 定義空List,用於保存讀到的行數據

    excelBook=open_workbook("data.xlsx")    # 從當前目錄讀取《data.xlsx》文件

    table=excelBook.sheet_by_name("data")  # 從《data.xlsx》中找名為 data的sheet頁

    rowNum=table.nrows  # 獲取《data.xlsx》-->data頁中 行數

    colNum=table.ncols  # 獲取《data.xlsx》-->data頁中 列數

    colName=table.row_values(0)    # 取第一行數據,即列名,colName 是個List

    # print(colName)

    if rowNum<=1:

        print("沒數據...")    # 如果行數<=1,說明沒有數據,因第1行一般定義為列名

    else:

        for i in range(rowNum-1):

            d={}    # 定義空字典,用於存放獲取到數據

            values=table.row_values(i+1)    # 獲取每行的數據,values最終是個List

            # print(values)

            for x in range(colNum):    #  每個列作為字典的一組數據

                d[colName[x]]=values[x]   #  用colName值作為字典的key,values值作業為字典的value

                # print(d)

            keyData.append(d)    # 讀完一行數據保存到字典,再保存到列表

    # print(keyData)

    return keyData   #  全部數據讀完並保存到列表後,返回

#  列表轉Json

def listToJson():

     keyParam=readExcel()    # 調用從excel讀取數據的函數,把數據保存到列表

    CaseConfig=open("CaseConfig.json", mode="w+")    #  創建json文件

    CaseConfig.write('{\n"key":')    # 往json文件中寫數據,先寫json的格式的{,和模塊名

      # 把從excel讀取的數據轉成Json格式保存入 CaseConfig,indent=4是進行格式化,使json排版好看

    json.mp(keyParam, CaseConfig, indent=4)  

    CaseConfig.write('\n}')   # 往json文件中寫數據,寫結尾的 },寫前先換行

    CaseConfig.close()    # 關閉json文件,必要!!

if __name__ == '__main__':        #  調試調用

    listToJson()

B. Python中list的實現

原文鏈接
這篇文章介紹了Python中list是如何實現的。
在Python中list特別有用。讓我們來看下list的內部是如何實現的。
來看下面簡單的程序,在list中添加一些整數並將他們列印出來。

正如你所看到的,list是可以迭代的。

Python中list是用下邊的C語言的結構來表示的。 ob_item 是用來保存元素的指針數組,allocated是 ob_item 預先分配的內存總容量

讓我們來看下當初始化一個空list的時候發生了什麼 L = []

非常重要的是知道list申請內存空間的大小(後文用allocated代替)的大小和list實際存儲元素所佔空間的大小( ob_size )之間的關系, ob_size 的大小和 len(L) 是一樣的,而allocated的大小是在內存中已經申請空間大小。通常你會看到allocated的值要比 ob_size 的值要大。這是為了避免每次有新元素加入list時都要調用realloc進行內存分配。接下來我們會看到更多關於這些的內容。

我們在list中追加一個整數:L.append(1)。發生了什麼?調用了內部的C函數app1()

來讓我們看下 list_resize() , list_resize() 會申請多餘的空間以避免調用多次 list_resize() 函數,list增長的模型是:0, 4, 8, 16, 25, 35, 46, 58, 72, 88, …

開辟了四個內存空間來存放list中的元素,存放的第一個元素是1。你可以從下圖中看到L[0]指向了我們剛剛加進去的元素。虛線的框代表了申請了但是還沒有使用(存儲元素)的內存空間

現在我們在列表的第一個位置插入一個整數5:L.insert(1, 5),看看內部發生了什麼。調用了ins1()

當你彈出list的最後一個元素:L.pop()。調用listpop(), list_resize 在函數listpop()內部被調用,如果這時 ob_size (譯者註:彈出元素後)小於allocated(譯者註:已經申請的內存空間)的一半。這時申請的內存空間將會縮小。

Pop的時間復雜度是O(1)

Python list對象有一個方法可以移除一個指定的元素。調用listremove()。

切開list和刪除元素,調用了 list_ass_slice() (譯者註:在上文slice list between element's slot and element's slot + 1被調用),來看下 list_ass_slice() 是如何工作的。在這里,低位為1 高位為2(譯者註:傳入的參數),我們移除在1號內存空間存儲的數據5

Remove的時間復雜度為O(n)

文中list的sort部分沒有進行翻譯
核心部分

C. Python3 字元串str和列表list轉換

>>> str1 = "abcdefg"

>>> list1 = list(str1)

>>> print(list1)

['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> str4 = "username=admin&passsword=123456"

>>> list4 = str4.split("&")

>>> print(type(list4))

<class 'list'>

>>> print(list4)

['username=admin', 'passsword=123456']

如果我們要對多個字元進行分割,那麼可以使用內置模塊 re.split() 方法。

>>> str5 = "username=admin&passsword=123456"

>>> import re

>>> list5 = re.split("&|=", str5)

>>> print(type(list5))

<class 'list'>

>>> print(list5)

['username', 'admin', 'passsword', '123456']

>>> import json

>>> str3 = '["aaa", "bbb", "ccc", "ddd"]'

>>> list3 = json.loads(str3)

>>> print(type(list3))

<class 'list'>

>>> print(list3)

['aaa', 'bbb', 'ccc', 'ddd']

>>> str2 = "['aaa', 'bbb', 'ccc', 'ddd']"

>>> list2 = eval(str2)

>>> print(type(list2))

<class 'list'>

>>> print(list2)

['aaa', 'bbb', 'ccc', 'ddd']

針對str2,json.loads()方法為何失靈了?

因為 json.loads() 將json格式字元串轉換為python對象,而按 json 的標准規范應該使用雙引號,如果使用單引號會導致報錯。

# 注意,轉換之後,雙引號會變為單引號

>>> list1 = ["aaa", 123, 'ccc', True]

>>> str1 = str(list1)

>>> print(type(str1))

<class 'str'>

>>> print(str1)

['aaa', 123, 'ccc', True]

>>> list3 = ['username=admin', 'passsword=123456']

>>> str3 = "&".join(list3)

>>> print(type(str3))

<class 'str'>

>>> print(str3)

username=admin&passsword=123456

# 這里列表中使用了單引號

>>> list4 = ['username=admin', 'passsword=123456']

>>> import json

>>> str4 = json.mps(list4)

>>> print(type(str4))

<class 'str'>

>>> print(str4)

["username=admin", "passsword=123456"]

Python3下字典、字元串及列表的相互轉換

D. python裡面list寫成json格式

提供一個思路(ps:本思路沒有具體實踐過,得靠你來完成啦!)
你可以將那幾個變數構造成一個json字元串,然後直接寫入文件。
all_the_text="{'gain':"+gain+",'Pot':"+Pot+",'Accel':"+Accel+",'Fullscale':"+Fullscale+",}"

python中寫入文件的過程如下:

file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

E. 如何把python裡面的list變成json對象

import json
file = open("your_file_name.txt", 'a') # 追加的方式寫入
your_dict = {}
your_dict['a'] = 0.123
your_dict['b'] = [1.1, 1.2, 1.3, 1.4, 1.5]
your_dict['c'] = 0.2
json_str = json.mps(your_dict, ensure_ascii=False) # 將字典裝化為json串
# ensure_ascii=False : 不用ascii,如果有中文的話,沒有就無所謂了
file.write(json_str+'\n')
拿去 不謝~
--------------------------------------------------------------------------------
輸出結果如下:
{"a": 0.123, "c": 0.2, "b": [1.1, 1.2, 1.3, 1.4, 1.5]}
--------------------------------------------------------------------------------------
就是不知道為什麼c在中間(0.0)

F. python json怎麼修改json數據

Json簡介:Json,全名 JavaScript Object Notation,是一種輕量級的數據交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的數據格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。Python的官網網址:https://docs.python.org/2/library/json.html?highlight=json#mole-json

Json API 使用:python在版本2.6之前,是需要先下載包,安裝後才能使用的,有點類似現在的RF內使用SeleniumLibrary一樣。但是在2.6中,官方文檔(https://docs.python.org/2.6/whatsnew/2.6.html)明顯指出,「有一些重要的新的軟體包添加到了標准庫,比如multiprocessing 和json,但是跟python 3比,2.6的這些包不會引進更多的新功能。"於是安裝python2.6以上版本的童鞋,可以不需要下載json包,直接在所需的地方就import json 即可使用,在安裝目錄下的Lib 下,看到這兩個包(點進去仔細閱讀這些源碼,會有更多的收獲,)如下文所示:

熱點內容
mvc創建資料庫 發布:2024-11-07 03:27:29 瀏覽:54
quartus加密 發布:2024-11-07 03:27:29 瀏覽:299
安卓手機刪除的視頻在哪個文件 發布:2024-11-07 03:26:09 瀏覽:507
an腳本庫 發布:2024-11-07 03:21:48 瀏覽:843
進銷存asp源碼 發布:2024-11-07 03:19:27 瀏覽:623
android用戶界面設計 發布:2024-11-07 03:06:32 瀏覽:917
mc伺服器如何給指令方塊 發布:2024-11-07 02:58:03 瀏覽:400
魔獸地圖作弊腳本 發布:2024-11-07 02:57:28 瀏覽:923
防爬蟲演算法 發布:2024-11-07 02:51:39 瀏覽:351
怎麼刪除明日之後玩過的伺服器 發布:2024-11-07 02:45:42 瀏覽:273