#author("2023-09-28T13:05:47+08:00","default:Admin","Admin")
#author("2023-09-28T13:19:23+08:00","default:Admin","Admin")
[[Python]]

&color(red){※This article is based on Python 3.7.3};

#contents


* dumps [#wd90773f]

 json.dumps()是json模块中最常用的函数之一,用于将一个python对象序列化为json编码字符串。函数原型如下:

 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)

#codeprettify{{
import json
 
data = {
    "name": "张三",
    "age": 18,
    "hobbies": ["reading", "music"],
    "info": {
        "address": "北京市朝阳区",
        "phone": "18888888888"
    }
}
 
json_str = json.dumps(data, ensure_ascii=False, indent=4)
print(json_str)
}}

* load [#q555d6c3]

son.loads()是json模块中另一个常用的函数,用于将一个json编码的字符串解码为python对象。函数原型如下:

 json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

#codeprettify{{
import json
 
json_str = '''
{
    "name": "李四",
    "age": 25,
    "hobbies": ["swimming", "playing games"],
    "info": {
        "address": "上海市黄浦区",
        "phone": "16666666666"
    }
}
'''
 
data = json.loads(json_str)

#结果:<class 'dict'>
print(type(data))

#结果:李四
print(data["name"])
}}

* Troubleshooting [#eaf32e82]

** Invalid \escape [#i74eb228]

错误现象:

 json.decoder.JSONDecodeError: Invalid \escape: line 3 column 22 (char 45)


原因:

在 Python 代码中使用正确的解码方式来解码 JSON 数据。例如,如果 JSON 数据使用了 UTF-8 编码,那么在 Python 代码中使用 json.loads(data, encoding='utf-8') 来解码数据。

对策

 json_str = json_str.replace('\\', '\\\\')

** Expecting property name enclosed in double quotes [#hcd9f825]

错误现象:

 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

json文件的最后项目的结果不能有逗号

#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS