Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在python中将字符串解析为json_Python_Json_String - Fatal编程技术网

无法在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整数通常应被视为限制在C
double
类型所表示的范围内(因为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整数通常应被视为仅限于