【Json】json.dumps和 json.loads 区别及ensure_ascii中文显示

  • json.dumps():dict转成str
  • json.loads():str转成dict

也就是说,一个是将字典转换为字符串,一个是将字符串转换为字典

import json  
  
TestTarget = {1:'A', 2:2, "jimy":"666",'tom':888}  
  
# test json.dumps  
  
print type(TestTarget), TestTarget  
json_str = json.dumps(TestTarget)  
print "json.dumps(TestTarget) return:"  
print type(json_str), json_str  
  
# test json.loads  
print "json.loads(str) return"  
json_dict = json.loads(json_str)  
print type(json_dict), json_dict

 结果:

<type 'dict'> {1: 'A', 2: 2, 'jimy': '666', 'tom': 888}
json.dumps(TestTarget) return:
<type 'str'> {"1": "A", "2": 2, "jimy": "666", "tom": 888}
json.loads(str) return
<type 'dict'> {u'1': u'A', u'2': 2, u'jimy': u'666', u'tom': 888}

 

***关于json中文编码

在使用json.dumps时要注意一个问题:

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"

输出的会是
'中国' 中的ascii 字符码,而不是真正的中文。

这是因为json.dumps 序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:

 

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>> 
### 回答1: `json.dumps()`是Python中的一个函数,用于将Python对象(如字典、列表等)转换为JSON格式的字符串。它的语法如下: ```python json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) ``` 其中,第一个参数`obj`是要转换为JSON字符串的Python对象,其他参数是可选的。一些常用的参数包括: - `indent`:指定缩进字符,可以是数字或字符串。如果是数字,则表示缩进空格数;如果是字符串,则表示缩进字符(如"\t")。 - `sort_keys`:指定是否按照键名排序,默认为False。 例如,将一个字典转换为JSON字符串并打印出来: ```python import json data = {'name': 'Alice', 'age': 25, 'city': 'Shanghai'} json_str = json.dumps(data, indent=4, sort_keys=True) print(json_str) ``` 输出结果: ```json { "age": 25, "city": "Shanghai", "name": "Alice" } ``` ### 回答2: json.dumps()是一个Python库中的方法,用于将Python对象转换为对应的JSON字符串。 在使用json.dumps()方法时,首先需要将需要转换的Python对象作为参数传入。该方法会将Python对象转换为JSON字符串,并返回该字符串。转换的过程中,它会根据对象的类型,将其转换为对应的JSON数据类型。例如,Python中的字符串会被转换为JSON中的字符串类型,数字会被转换为JSON中的数字类型,列表会被转换为JSON中的数组类型等等。 同时,json.dumps()方法还提供了一些可选的参数,用于控制序列化的过程。其中,最常用的是ensure_ascii参数。当ensure_ascii参数被设置为True时,会将所有非ASCII的字符转换为ASCII码的转义字符。这样可以确保生成的JSON字符串是ASCII编码的,方便在网络传输或存储时的处理。 总之,json.dumps()方法是将Python对象转换为JSON字符串的重要工具,可以方便地在不同的应用之间进行数据传输交换。在处理JSON数据时,可以使用json.dumps()方法将Python对象转换为JSON字符串,并根据需要进行一些可选参数的设置。最终得到的JSON字符串可以方便地进行传输、存储或在其他应用中进行解析处理。 ### 回答3: json.dumps是Python中的一个函数,用于将Python对象转换为对应的JSON字符串。其作用是将数据从Python的数据类型(比如字典、列表、元组等)转换为JSON格式的字符串,以便于在网络传输或存储时进行使用。 使用json.dumps函数时,需要将要转换的Python对象作为参数传入,并可以通过一些可选的参数来控制转换的行为。例如,可以通过设置indent参数来指定JSON字符串的缩进空格数,使其更加可读;可以通过设置sort_keys参数来控制字典键值对的顺序;可以通过设置ensure_ascii参数来指定是否将非ASCII字符进行转义等。 json.dumps函数将Python对象转换为JSON字符串的过程是通过遍历对象的内容,并按照JSON规范将其转换为对应的字符串形式。例如,将Python的字典对象转换为JSON字符串时,字典的键值对会按照一定的顺序进行排序,并在每个键值之间加上冒号,最后整体包裹在花括号内。 使用json.dumps函数可以方便地将Python对象转换为JSON字符串,使得数据的传输存储更加方便灵活。同时,Python还提供了对应的json.loads函数用于将JSON字符串转换回Python对象,从而实现数据的反序列化,为我们处理使用数据提供了很大的便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值