json.dumps 用于将 Python 对象编码成 JSON 字符串?
json.dumps(object)? 其中object 为对象,比如
下面的data = [ { 'a' : 1, 'b' : 2 } ]
以及没有带"" 的{'a' : 1, 'b' : 2 },带上"",就会变成字符串
sort_keys =True:是告诉编码器按照字典排序(a到z)输出。如果是字典类型的python对象,就把关键字按照字典排序
skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),就会报TypeError的错误。此时设置成True,则会跳过这类key
#!/usr/bin/python
import json
data = [ { 'a' : 1, 'b' : 2 } ]
print(type(data))
print(data)
data1 = json.dumps(data)
print(type(data1))
print(data1)
data2 = json.dumps( {'a' : 1, 'b' : 2 }, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
print("******************************************************************")
data2 = json.dumps( data, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
?输出
<class 'list'>
[{'a': 1, 'b': 2}]
<class 'str'>
[{"a": 1, "b": 2}]
{
"a": 1,
"b": 2
}
**************************************************************************************************
[
{
"a": 1,
"b": 2
}
]
?json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型
报错是因为**********下面的 json_str不是json格**********上面的字符里面的内容用""引起来就不存在此问题
#!/usr/bin/python
import json
json_str='{ "a" : 1,"b" : 2 }'
print(type(json_str))
print(json_str)
json_obj=json.loads(json_str)
print(type(json_obj))
print(json_obj)
json_fmt=json.dumps(json_obj,sort_keys=True, indent=4, separators=(',', ': '))
print(json_fmt)
print("**********************************************************************************")
json_str="{ 'a' : 1, 'b' : 2 }"
print(type(json_str))
print(json_str)
json_obj=json.loads(json_str)
输出
<class 'str'>
{ "a" : 1,"b" : 2 }
<class 'dict'>
{'a': 1, 'b': 2}
{
"a": 1,
"b": 2
}
*******************************************************************************
<class 'str'>
{ 'a' : 1, 'b' : 2 }
Traceback (most recent call last):
File "aaaa.py", line 18, in <module>
json_obj=json.loads(json_str)
File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
|