无法在python中将字符串解析为json
我有一个字符串,我将其计算为:无法在python中将字符串解析为json,python,json,string,Python,Json,String,我有一个字符串,我将其计算为: import ast def parse(s): return ast.literal_eval(s) print parse(string) {'_meta': {'name': 'foo', 'version': 0.2}, 'clientId': 'google.com', 'clip': False, 'cts': 1444088114, 'dev': 0, 'uuid': '4375
import ast
def parse(s):
return ast.literal_eval(s)
print parse(string)
{'_meta': {'name': 'foo', 'version': 0.2},
'clientId': 'google.com',
'clip': False,
'cts': 1444088114,
'dev': 0,
'uuid': '4375d784-809f-4243-886b-5dd2e6d2c3b7'}
但是当我使用jsonlint.com验证上述json时。。
它抛出架构错误
如果我尝试使用json.loads
我看到以下错误:
Try: json.loads(str(parse(string)))
ValueError: Expecting property name: line 1 column 1 (char 1)
我基本上是在尝试用avro转换这个json。literal_eval()加载Python语法。它不会解析JSON,这就是函数的作用
使用str()
将Python对象转换为字符串仍然是Python语法,而不是JSON语法,这就是JSON.dumps()
的用途
JSON不是Python语法。Python使用None
,而JSON使用null
;Python使用True
和False
表示布尔值,JSON使用True
和False
。JSON字符串始终使用“
双引号,Python根据内容使用单引号或双引号。使用Python 2时,字符串包含字节,除非使用unicode
对象(可通过其文字符号上的u
前缀识别),但JSON字符串完全支持Unicode。Python将使用\xhh
表示ASCII以外的拉丁-1范围内的Unicode字符,将\uhhhhhh
表示非BMP Unicode点,但JSON仅使用\uhhh
代码。JSON整数通常应被视为仅限于C双精度
表示的范围>类型(因为JavaScript数字总是浮点数),Python整数除了适合内存之外没有其他限制
因此,JSON和Python语法是不可互换的。您不能在Python对象上使用str()
并期望将其解析为JSON。您不能使用JSON.dumps()
并使用ast.literal\u eval()
对其进行解析。不要混淆两者。ast.literal\u eval()
加载Python语法。它不会解析JSON,这就是JSON.loads()函数的作用
使用str()
将Python对象转换为字符串仍然是Python语法,而不是JSON语法,这就是JSON.dumps()
的用途
JSON不是Python语法。Python使用None
,其中JSON使用null
;Python使用True
和False
表示布尔值,JSON使用True
和False
。JSON字符串始终使用“
双引号,Python根据内容使用单引号或双引号。使用Python2时,字符串包含字节,除非使用unicode
对象(可通过其文字符号上的u
前缀识别),但JSON字符串完全支持unicode。Python将使用\xhh
表示ASCII以外拉丁-1范围内的Unicode字符,将\uhhhhhh
表示非BMP Unicode点,但JSON仅使用\uhhh
代码。JSON整数通常应被视为限制在Cdouble
类型所表示的范围内(因为JavaScript数字始终是浮点数),Python整数除了适合内存之外没有其他限制
因此,JSON和Python语法是不可互换的。您不能在Python对象上使用str()
,而期望将其解析为JSON。您不能使用json.dumps()
并使用ast.literal\u eval()
解析它。不要混淆两者。ast.literal\u eval()
加载Python语法。它不会解析JSON,这就是函数的作用
使用str()
将Python对象转换为字符串仍然是Python语法,而不是JSON语法,这就是JSON.dumps()
的用途
JSON不是Python语法。Python使用None
,而JSON使用null
;Python使用True
和False
表示布尔值,JSON使用True
和False
。JSON字符串始终使用“
双引号,Python根据内容使用单引号或双引号。使用Python 2时,字符串包含字节,除非使用unicode
对象(可通过其文字符号上的u
前缀识别),但JSON字符串完全支持Unicode。Python将使用\xhh
表示ASCII以外的拉丁-1范围内的Unicode字符,将\uhhhhhh
表示非BMP Unicode点,但JSON仅使用\uhhh
代码。JSON整数通常应被视为仅限于C双精度
表示的范围>类型(因为JavaScript数字总是浮点数),Python整数除了适合内存之外没有其他限制
因此,JSON和Python语法是不可互换的。您不能在Python对象上使用str()
并期望将其解析为JSON。您不能使用JSON.dumps()
并使用ast.literal\u eval()
对其进行解析。不要混淆两者。ast.literal\u eval()
加载Python语法。它不会解析JSON,这就是JSON.loads()函数的作用
使用str()
将Python对象转换为字符串仍然是Python语法,而不是JSON语法,这就是JSON.dumps()
的用途
JSON不是Python语法。Python使用None
,其中JSON使用null
;Python使用True
和False
表示布尔值,JSON使用True
和False
。JSON字符串始终使用“
双引号,Python根据内容使用单引号或双引号。使用Python2时,字符串包含字节,除非使用unicode
对象(可通过其文字符号上的u
前缀识别),但JSON字符串完全支持unicode。Python将使用\xhh
表示ASCII以外拉丁-1范围内的Unicode字符,将\uhhhhhh
表示非BMP Unicode点,但JSON仅使用\uhhh
代码。JSON整数通常应被视为仅限于