json.decoder.JSONDecodeError:期望值:第1行第2列(字符1)

Mic*_*ang 2 python csv json

我正在使用 python 3.9

我收到此错误:

json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时:

import json

print(json.loads("['product', 'font', 'graphics', 'photo caption', 'brand', 'advertising', 'technology', 'text', 'graphic design', 'competition']"))
Run Code Online (Sandbox Code Playgroud)

但当我这样做时它工作得很好:

print(json.loads('["a", "b", "c"]'))
Run Code Online (Sandbox Code Playgroud)

看来错误与引号有关。但请问这是为什么呢?谢谢你!

Jon*_*nSG 6

简而言之,这就是 JSON 规范的工作原理。所有字符串都必须用双引号引起来,正如您从JSON 简介中间的图表中看到的那样。

ast.literal_eval()但是,您可以使用而不是在 python 中解析该字符串json.loads()

import ast
print(ast.literal_eval("['product', 'font', 'graphics', 'photo caption', 'brand', 'advertising', 'technology', 'text', 'graphic design', 'competition']"))
Run Code Online (Sandbox Code Playgroud)