python将数据写入json文件(python 将数据写入文件)

http://www.itjxue.com  2023-03-28 21:51  来源:未知  点击次数: 

python写入json文件

想要多条相同key的数据添加json中,先将数据存入到字典中,再 append 到列表中。最后存入json中。

这样子list才会是下图所示的样子。

Python爬虫(七)数据处理方法之JSON

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,且具有自我描述性,更易理解。

JSON看起来像python类型(列表,字典)的字符串。

在之前的文章中,我们说到了怎么用response的方法,获取到网页正确解码后的字符串。如果还有不懂的,可以先阅读 Python爬虫(三)Requests库 。接下来以有道翻译为例子,说说怎么通过网页解码后的字符串,提取到翻译结果。

再结合上述有道翻译的例子,得到字典类型的返回结果,并提取出来翻译结果。

将上述例子的dict_json换成str字符串,再写入文本中。

执行完上述的程序,会得到一个fanyi.txt的文件,其结果如下:{"type": "ZH_CN2EN", "errorCode": 0, "elapsedTime": 1, "translateResult": [[{"src": "\u4eba\u751f\u82e6\u77ed\uff0c\u6211\u7528python", "tgt": "Life is too short, I use python"}]]}。这样子的一份文档,中文部分显示的是二进制,且格式非常不利于阅读,这并不是我们想要的结果。好在json.dumps()为我们提供的两个方法,以帮助我们更好阅读文档。

1.ensure_ascii,能够让中文显示成中文;

2.indent,能够让下一行在第一行的基础上空格。

其用法如下:

Python类型可以转为JSON的number类型

python数据类型转化为JSON格式的数据有两种方式。

第一种方式是,dumps(dict1)是将python数据类型转化为JSON类型的字符串string,dump(dict1,sp)将python数据类型转化为文件流,sp表示写入文件的路径。第二种方式是通过dumps转化成字符串,然后再写入。

JSON格式的数据也可以转化为python数据类型。loads(str)将JSON字符串转化成python类型的数据,在使用loads操作字符串load(str,fp)将后缀为json文件转化成python格式的数据,load操作文件流。因为文件读写操作时有可能产生IOError,一旦出错,后面的close方法就不能执行到,为了保证是否出错都能关闭文件,使用withopen文件操作流。

python中json处理

python中json文件处理涉及的四个函数json.loads()、json.dumps()、json.load()、json.dump()。

1)json.dumps()

????将一个Python数据类型dict进行json格式的编码(字典-字符串)

? ? eg:

????age_dict = {'age1':'12', 'age2':'15'}

????json_info = json.dumps(age_dict)

????print("json_info = {}".format(json_info))

????print("json_info type = {}".format(type(json_info)))

2)json.loads()

????将json格式数据转换为dict(字符串-字典)

????json_age ='{"age1": "12", "age2": "15"}'

????dict_age = json.loads(json_info)

????print("json_age = {}".format(json_age))

????print("dict_age type = {}".format(str(type(dict_age))))

3)json.load()

????读取文件,将里json格式字符串转化为dict

????with open(test.json, 'r') as file:

? ? ????contents = json.load(file)

????print(contents)

4)json.dump()

????将dict类型转换为json格式字符串,存入文件

????number = [1, 2, 3, 5]

????file = 'number.json'

????with open(file?, 'w') as file:

? ? ????json.dump(number, file)

python3 读excel转Json文件

from xlrd import *

import json

# 参考1-字典、列表转JSON:

# 参考2-JSON直接保存到文件:

# 从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.dump(keyParam, CaseConfig, indent=4)??

????CaseConfig.write('\n}')? ?# 往json文件中写数据,写结尾的 },写前先换行

????CaseConfig.close()? ? # 关闭json文件,必要!!

if __name__ == '__main__':? ? ? ? #? 调试调用

????listToJson()

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( )

(责任编辑:IT教学网)

更多

推荐其他WEB语言文章