json中json.loads()和json.dumps()的区别

json中json.loads()和json.dumps()的区别

刚刚好学习这两个函数,遇到些问题,百度了一下,理解了他们的区别,但百度还是没有解决掉我的问题,但经过摸索发现还是挺简单的
首先,看一下他们二者的区别:

json.loads() 是将字符串传化为字典
json.dumps () 是将字典转化为字符串

这也就是它们的区别,在百度随便都能找到的。但是我主要想讲的是json.loads()这个函数, 如果字符串不是字典格式的字符串的时候,执行json.loads会报错!
看下列:



import json
str = "  Lihua is good man!     "
#非字典类型的字符串,会报错!
dic1 = json.loads(str)
print(dic1)
print(type(dic1))

执行结果:
执行结果

如果是字典类型的字符串的话就OK了,下面是正常的使用的:

import json
strDic = '{"name":"Lihua","ages":18,"weigth":140,"heigth":170}'
str = json.loads(strDic)
print(str)
print(type(str))

执行结果:
这里写图片描述

一般情况下使用json.loads()都是将字典型的字符串转化的,之所以这里写一下,是防止类似事件发生

下面看一下json.dumps()


import json
strDic = '{"name":"Lihua","ages":18,"weigth":140,"heigth":170}'
str = json.loads(strDic)
print(str)
print(type(str))
dic =json.dumps(str)
#此时的str经过上述代码已经转变为字典类型了,现在再将它转回去
print(dic)
print(type(dic))

运行结果:
这里写图片描述

这也当是处理这类异常了

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char
0)

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: json.dumps 将 Python 对象转换为 JSON 字符串,而 json.loads 将 JSON 字符串转换为 Python 对象。更具体地说,json.dumps 接受一个 Python 对象,并返回一个 JSON 字符串,而 json.loads 接受一个 JSON 字符串,并返回一个 Python 对象。这两个方法都是在序列化(将 Python 对象转换为 JSON 字符串)和反序列化(将 JSON 字符串转换为 Python 对象)之间进行转换的重要工具。 ### 回答2: json.dumps和json.loads是Pythonjson模块的两个函数,用于处理JSON数据格式。 json.dumps函数是将Python对象转换为JSON格式的字符串。它接受一个对象作为参数,可以是字典、列表、元组等等。函数会将对象转换为相应的JSON格式表示,并返回一个字符串。该函数还可以接受一些参数,如indent、sort_keys等,用于控制生成的JSON字符串的格式。 json.loads函数是将JSON格式的字符串转换为Python对象。它接受一个JSON格式的字符串作为参数,并将其转换为相应的Python对象,如字典、列表等。如果传入的JSON字符串格式不正确,函数会抛出一个异常。 这两个函数的主要区别在于作用方向和参数的不同。json.dumps将Python对象转换为JSON格式的字符串,而json.loads将JSON格式的字符串转换为Python对象。json.dumps可以接受一些参数用于控制生成的JSON字符串的格式,而json.loads不接受任何参数。 示例: ```python import json # 将Python对象转换为JSON格式的字符串 data = {'name': 'Alice', 'age': 20} json_str = json.dumps(data) print(json_str) # 输出: {"name": "Alice", "age": 20} # 将JSON格式的字符串转换为Python对象 json_str = '{"name": "Bob", "age": 25}' data = json.loads(json_str) print(data) # 输出: {'name': 'Bob', 'age': 25} ``` 综上所述,json.dumps和json.loads是json模块的两个函数,分别用于将Python对象转换为JSON格式的字符串和将JSON格式的字符串转换为Python对象。它们在作用方向和部分参数上有所不同。 ### 回答3: json.dumps和json.loads都是Python用于处理JSON数据的函数,但它们之间有一些区别json.dumps函数是将Python对象转换为JSON格式的字符串。它接受一个Python对象作为参数,然后将其转换为JSON格式的字符串。例如: ```python import json data = {'name': 'Alice', 'age': 25} json_string = json.dumps(data) print(json_string) ``` 输出: ```json {"name": "Alice", "age": 25} ``` 可以看到,json.dumps函数将字典对象转换为了JSON格式的字符串。 json.loads函数则是将JSON格式的字符串转换为Python对象。它接受一个JSON格式的字符串作为参数,然后将其转换为Python对象。例如: ```python import json json_string = '{"name": "Alice", "age": 25}' data = json.loads(json_string) print(data['name']) print(data['age']) ``` 输出: ``` Alice 25 ``` 可以看到,json.loads函数将JSON格式的字符串转换为了Python字典对象。 因此,json.dumps和json.loads的区别在于一个将Python对象转换为JSON格式的字符串,而另一个将JSON格式的字符串转换为Python对象。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值