Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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将JavaScript对象转换为JSON_Python_Json_Javascript Objects - Fatal编程技术网

使用python将JavaScript对象转换为JSON

使用python将JavaScript对象转换为JSON,python,json,javascript-objects,Python,Json,Javascript Objects,我试图从一个网站上检索一个最初看起来像普通JSON的东西。但它是一个JavaScript对象,不是有效的JSON。 有没有一种方法可以使用python将这个字符串转换为JSON 例如: { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue", dimensions:[ { height: "2", width: "1" } ] } 恐怕Python不懂JavaScript。如果

我试图从一个网站上检索一个最初看起来像普通JSON的东西。但它是一个JavaScript对象,不是有效的JSON。 有没有一种方法可以使用python将这个字符串转换为JSON

例如:

{
 firstName:"John",
 lastName:"Doe",
 age:50,
 eyeColor:"blue",
 dimensions:[
     {
      height: "2",
      width: "1"
     }
]
}

恐怕Python不懂JavaScript。如果可以使用,则可以很容易地将输入转换为JSON

编辑:当然,您也可以使用每个浏览器的JavaScript控制台来执行此操作

> d = {
...  firstName:"John",
...  lastName:"Doe",
...  age:50,
...  eyeColor:"blue",
...  dimensions:[
...      {
.....       height: "2",
.....       width: "1"
.....      }
... ]
... };
{ firstName: 'John',
  lastName: 'Doe',
  age: 50,
  eyeColor: 'blue',
  dimensions: [ { height: '2', width: '1' } ] }
> JSON.stringify(d)
'{"firstName":"John","lastName":"Doe","age":50,"eyeColor":"blue","dimensions":[{"height":"2","width":"1"}]}'

使用具有非严格模式的解析器来处理此类输入。我一直在推荐这样的东西,因为这是我搜索
python非严格json解析器时发现的第一个可行的候选者

>>> demjson.decode("""{
...  firstName:"John",
...  lastName:"Doe",
...  age:50,
...  eyeColor:"blue",
...  dimensions:[
...      {
...       height: "2",
...       width: "1"
...      }
... ]
... }""")
{u'eyeColor': u'blue', u'lastName': u'Doe', u'age': 50, u'dimensions': [{u'width
': u'1', u'height': u'2'}], u'firstName': u'John'}