写入js文件而不传入字符串引号(在Python中)

写入js文件而不传入字符串引号(在Python中),python,json,string,Python,Json,String,我正在编写一个解析器来从GitHub api获取数据,我想将该文件输出为以下.js格式: //Ideal output var LIST_DATA = [ { "name": "Python", "type": "category" }] 尽管我在使用变量var LIST\u DATA写入output.js文件时遇到问题,但无论我如何处理字符串,最终结果显示为“var LIST\u DATA” 例如: //Current Output "var LIST_DATA = "[ {

我正在编写一个解析器来从GitHub api获取数据,我想将该文件输出为以下.js格式:

//Ideal output
var LIST_DATA = [
{
    "name": "Python",
    "type": "category"
}]
尽管我在使用变量
var LIST\u DATA
写入
output.js
文件时遇到问题,但无论我如何处理字符串,最终结果显示为
“var LIST\u DATA”

例如:

//Current Output
"var LIST_DATA = "[
{
    "name": "Python",
    "type": "category"
}]
我的Python脚本:

var = "var LIST_DATA = "
with open('list_data.js', 'w') as outfile:
     outfile.write(json.dumps(var, sort_keys = True))
根据StackOverflow的答案,我还尝试了使用
strip
方法,得到了相同的结果

var = "var LIST_DATA = "
with open('list_data.js', 'w') as outfile:
     outfile.write(json.dumps(var.strip('"'), sort_keys = True))
我假设,每当我将文本转储到js文件中时,字符串都会与双引号一起传入。。。有办法解决这个问题吗

谢谢。

试试看

var = '''var LIST_DATA = [
{
    name: "Python",
    type: "category"
}]'''
with open("list_data.js", "w") as f:
    f.write(var)
json库不是您在这里寻找的

而且,Javascript中的字典不需要带引号的键,除非键中有空格

输出:

如果将字符串传递给
json.dumps
,它将始终被引用。第一部分(变量的名称)不是JSON,因此您只需逐字编写它,然后使用
JSON.dumps

var = "var LIST_DATA = "
my_dict = [
  {
    "name": "Python",
    "type": "category"
  }
]
with open('list_data.js', 'w') as outfile:
    outfile.write(var)
    # Write the JSON value here
    outfile.write(json.dumps(my_dict))

在编写
var LIST_DATA=
时,不要使用
json.dumps
,它被解释为一个json值,因此被用引号括起来。
var LIST_DATA=[…
不是有效的json,因此
json.dumps
将永远不会输出它。您需要的是
输出文件。写入('var LIST_DATA=');json.dump(不管数据是什么,outfile,indent=1)
。非常感谢大家,哇……当然,现在它有意义了:json=quote。。。。