写入js文件而不传入字符串引号(在Python中)
我正在编写一个解析器来从GitHub api获取数据,我想将该文件输出为以下.js格式:写入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 = "[ {
//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。。。。