我'{name : "John" , age : 17}'
在Python中使用字符串作为javascript变量,如何将其转换为JSON { "name" : "John" , "age" : 17 }
或如何在fieldname
和中添加双引号age
。json.loads
不能帮助我,它返回我的字符串不是json
您确定这是一个正确的json吗?-示例中的键name
和age
都没有用引号引起来,引号本身就是无效数据。
如果不是这种情况,例如问题中的错字,则使用的方法是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] 删除。
我来说两句