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

时间:2018-04-16 20:09:45

标签: python json string

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

//Ideal output
var LIST_DATA = [
{
    "name": "Python",
    "type": "category"
}]

虽然我在使用变量output.js写入var LIST_DATA文件时遇到问题,但无论我对字符串做什么,最终结果显示为"var LIST_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))

我还尝试根据this StackOverflow回答使用strip方法并得到相同的结果

var = "var LIST_DATA = "
with open('list_data.js', 'w') as outfile:
     outfile.write(json.dumps(var.strip('"'), sort_keys = True))

我假设,每当我将文本转储到js文件中时,字符串都会与双引号一起传入......有没有办法解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:0)

尝试

public String startDate;
public String cpm;
public int id;
public String name;

public Campaigns () {

}

public String getStartDate() {
    return startDate;
}
public void setStartDate(String startDate) {
    this.startDate = startDate;
}

public String getCpm() {
    return cpm;
}
public void setCpm(String cpm) {
    this.cpm = cpm;
}

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

}

json库不是你想要的。

此外,除非密钥中有空格,否则Javascript中的字典不需要带引号的密钥。

输出: {{0}}

答案 1 :(得分:0)

如果您将字符串传递给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))