Python JSON文件操作

Python JSON文件操作

  • json的值可以为数字(整数,浮点数),字符串,逻辑值(true,false),数组,对象(类似python字典),null
{
	"name":"小友",
	"age":18,
	"money":2019.28,
	"rich":false,
	"interest":["eat","play"],
	"property":{
				"car":null,
				"house":1
	},
	"school":[
		{
			"s-name":"广州第一小学",
			"address":"广州"

		},
		{
			"s-name":"广州第一中学",
			"address":"广州"
		}
	]
}

json

  • json模块是Python自带的模块, 用于json与python数据之间的相互转换

  • 什么是包含json的类文件对象?

    • 就是一个使用open打开的指向json格式文件的对象
      • rf = open(“xx.json”, ‘r’) 这里rf就是
      • wf = open(“xx.json”, “w”) 这里wf也是
  • dump与dumps的两个参数

    • ensure_ascii: 是否使用ascii方式写入,默认True, 中文就会显示编码的后内容,如果指定False则以UTF-8编码写入,此时打开文件也必须指定UTF-8
    • indent: 用于指定代码块之间缩进几个空格

loads

  # 准备json格式的字符串
  json_str = '{"a":10, "b":20, "c":true, "d":["a","b","中文"]}'
  # 把json字符串转为为python
  dic = json.loads(json_str)

dumps

  # 把python中数据类型转换为json字符串
  json_s = json.dumps(dic)

dump

  # 操作文件
  # with open("test.json", 'w', encoding='utf8') as f:
  #     json.dump(dic, f)

  with open("test.json", 'w', encoding='utf8') as f:
      json.dump(dic, f, ensure_ascii=False, indent=2)

load

with open('test.json', 'r', encoding='utf8') as f:
   a =  json.load(f)

json使用注意点1

  • json中的字符串都是双引号引起来的

    • 如果不是双引号
      • eval:能实现简单的字符串和python类型的转化
      • replace:把单引号替换为双引号
  • 往一个文件中写入多个json串,不再是一个json串,不能直接读取

    • 一行写一个json串,按照行来读取 f.readline()
  # json模块只能处理标准的json字符串
  json_str = "{'a':1, 'b':2, 'c':3}"
  #  报错
  # dic = json.loads(json_str)
  # print(dic)
  # 方案1: 如果数量比较小,可以使用eval
  dic = eval(json_str)
  print(dic)
  print(type(dic))

  # 方案2: 把单引号,都替换为""
  json_str = json_str.replace("'", "\"")
  dic = json.loads(json_str)
  print(dic)

json使用注意点2

  • 一般是字典之间的转换,当然列表也是可以的,例如:

    a="[123]" 
    b= json.loads(a) # b = [123]
    c = json.dumps(b) # c = '[123]'
    
    #同理load和dump一样可以对列表进行操作
    json_list = [1, 2, 3, 4, 5, 6]
    with open('city.json', 'w', encoding='utf8') as f:
        json.dump(json_list, f,ensure_ascii=False)
    
    with open('city.json', 'r', encoding='utf8') as f:
        a= json.load(f)
        print(a) # [1, 2, 3, 4, 5, 6]
        print(type(a))   # <class 'list'>
    
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的json文件操作主要涉及到读取和写入json文件。 1. 读取json文件: 要读取json文件,首先需要导入json模块。然后可以使用`json.load()`函数来加载json文件并将其转换为Python对象。例如: ``` import json # 读取json文件 with open('data.json', 'r') as file: data = json.load(file) # 打印读取的数据 print(data) ``` 在上面的代码中,我们首先打开并读取名为`data.json`的文件,然后使用`json.load()`函数将其转换为Python对象,最后打印出来。 2. 写入json文件: 要写入json文件,同样需要导入json模块。然后可以使用`json.dump()`函数将Python对象写入到json文件中。例如: ``` import json # 要写入的数据 data = { "name": "John", "age": 30, "city": "New York" } # 写入json文件 with open('data.json', 'w') as file: json.dump(data, file) ``` 在上面的代码中,我们首先定义了要写入的数据`data`,然后使用`json.dump()`函数将其写入到名为`data.json`的文件中。 综上所述,Python中的json文件操作主要涉及到读取和写入json文件。通过导入json模块和使用`json.load()`和`json.dump()`函数,我们可以很方便地进行json文件的读写操作。 ### 回答2: Python中的json模块提供了一种处理JSON格式数据的方式。JSON是一种常用的数据交换格式,可以在不同的编程语言之间进行数据传输,也可以作为配置文件的格式。 在Python中,我们可以使用json模块的loads()和dumps()函数来进行JSON的解析和序列化操作。loads()函数可以将JSON格式的数据转换为Python的字典或列表对象,而dumps()函数可以将Python对象转换为JSON格式的字符串。 除了这两个基本函数外,json模块还提供了一些其他的方法来处理JSON数据。例如,json.load()和json.dump()函数可以直接读取和写入JSON文件,而不需要手动进行解析和序列化操作json.dumps()函数可以将Python对象转换为JSON格式的字符串,并可以指定一些参数来控制输出的格式。json.loads()函数可以将JSON格式的字符串转换为Python的字典或列表对象。 在进行JSON文件操作时,我们通常需要使用with语句来确保文件的正确关闭。下面是一个简单的例子,演示了如何读取和写入JSON文件: ```python import json # 读取JSON文件 with open('data.json', 'r') as f: data = json.load(f) # 修改数据 data['name'] = 'Alice' # 写入JSON文件 with open('data.json', 'w') as f: json.dump(data, f) ``` 通过这个例子,我们可以看到,使用json模块操作JSON文件非常简单。我们只需要将JSON文件读取到Python对象中,对对象进行修改或添加新的键值对,然后将修改后的对象保存回JSON文件即可。 ### 回答3: Python中的json模块提供了一种简便的方式来处理JSON数据。JSON是一种轻量级的数据交换格式,常用于数据的存储和交互。 首先,我们可以使用json模块中的loads()函数将JSON字符串解析为Python对象。load()函数可以从文件中读取JSON数据并解析为Python对象。这两个函数返回的是Python的字典或列表类型。 如果想将Python对象转换为JSON字符串,可以使用json模块中的dumps()函数。dump()函数可以将JSON数据写入文件。 另外,json模块还提供了loads()和dumps()的变体:load()和dump(),它们可以直接解析读取文件和写入文件。 除了基本的读写操作json模块还提供了一些工具函数来处理JSON数据。例如,json模块中的json_normalize()函数可以将嵌套的JSON数据展平为扁平的表格,方便进行数据分析和处理。 总结起来,Python中的json模块提供了一套方便的工具来处理JSON数据。无论是解析JSON数据,还是将Python对象转换为JSON字符串,都可以找到相应的函数来完成。使用json模块,可以轻松地进行JSON数据的读写和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值