赞
踩
json.decoder.JSONDecodeError: expecting value: line1 column 2 (char 1)
content = “[‘单词1’, ‘单词2’]”
将原来的处理方法
text = json.loads(content)替换为eval
text = eval(content)
这个错误是因为在解析JSON数据时发生了问题。JSONDecodeError表示解码器期望在特定位置找到一个有效的JSON值,但实际上找到了无效的字符或者缺少了值。但是正常情况下json是可以解析数组的,由此我推测该问题可能与单引号和双引号有关系。
于是验证一下,果然是这样:
>>> import json >>> content = "['text1', 'text2']" >>> print(json.loads(content)) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1) >>> content = '["text1", "text2"]' >>> print(json.loads(content)) ['text1', 'text2'] >>>
json.dumps():用于将 Python 对象序列化为 JSON 字符串。它接受一个 Python 对象作为参数,并返回一个对应的 JSON 字符串。例如,json.dumps(obj) 可以将一个 Python 字典或列表转换为 JSON 字符串。
json.dump():与 json.dumps() 类似,但是它将序列化的 JSON 数据直接写入文件(或类文件对象)。它接受两个参数:要序列化的 Python 对象和要写入的文件(或类文件对象)。例如,json.dump(obj, file) 将 Python 对象序列化为 JSON 字符串,并将其写入文件中。
json.loads():用于将 JSON 字符串解析为 Python 对象。它接受一个 JSON 字符串作为参数,并返回一个对应的 Python 对象。例如,json.loads(json_str) 将一个 JSON 字符串解析为 Python 字典或列表。
json.load():与 json.loads() 类似,但是它从文件(或类文件对象)中读取 JSON 数据,并将其解析为 Python 对象。它接受一个文件(或类文件对象)作为参数,并返回解析后的 Python 对象。例如,json.load(file) 从文件中读取 JSON 字符串,并将其解析为 Python 对象。
dumps() 和 loads() 是将 JSON 数据与 Python 对象之间进行转换的函数,可以在内存中直接操作 JSON 字符串和 Python 对象。
dump() 和 load() 则是在文件(或类文件对象)上直接进行读写操作,将 JSON 数据与文件进行交互。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。