Python中JSON的Javascript变量

萨沙·科罗维(Sasha Koroviy)

'{name : "John" , age : 17}'在Python中使用字符串作为javascript变量,如何将其转换为JSON { "name" : "John" , "age" : 17 } 或如何在fieldname和中添加双引号agejson.loads不能帮助我,它返回我的字符串不是json

托多尔·米纳科夫

您确定这是一个正确的json吗?-示例中的键nameage都没有用引号引起来,引号本身就是无效数据。

如果不是这种情况,例如问题中的错字,则使用的方法是dumps()

import json
py_dict = {"name": "John" , "age": 17}
json_val = json.dumps(py_dict)   # string json representation of the dictionary
json_val2 =json.dumps(json.loads('{"name" : "John" , "age" : 17}'))    # parsing a string as dictionary and then dumping it as a json-formatted string

正如您在第二个示例中看到的那样,loads()采用json字符串并从中创建字典。


回答更新的问题:任何尝试使用字符串replace或regex解析和修复源的尝试都容易出错。

由于yaml是json的超集,并且您的示例确实看起来像yaml,因此它可以解析它:

import yaml, json
val = '{name: "John" , age: 17}'
py_dict = yaml.loads(val)    # it is now a proper python dictionary
print(json.dumps(py_dict))
# prints 
#    {"name": "John" , "age": 17}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章