当前位置:首页 » 编程语言 » 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 下,看到这两个包(点进去仔细阅读这些源码,会有更多的收获,)如下文所示:

热点内容
我的世界建造大赛服务器 发布:2024-11-07 01:35:52 浏览:504
电脑配置信息被改怎么看到 发布:2024-11-07 01:17:06 浏览:776
linuxgc 发布:2024-11-07 00:51:56 浏览:316
乐视改密码是什么意思 发布:2024-11-07 00:47:07 浏览:486
linux图形界面系统 发布:2024-11-07 00:42:00 浏览:999
群控ip是服务器ip么 发布:2024-11-07 00:39:43 浏览:564
安卓手机上制表app哪个好 发布:2024-11-07 00:28:06 浏览:117
电脑进服务器卡了退不出来怎么办 发布:2024-11-07 00:23:30 浏览:763
安卓哪个型号不卡 发布:2024-11-07 00:19:03 浏览:485
mxml库编译 发布:2024-11-07 00:18:07 浏览:213