【发布时间】:2018-09-26 16:09:22
【问题描述】:
我正在编写一个解析器来从 GitHub api 抓取数据,我想将文件输出为以下 .js 格式:
//Ideal output
var LIST_DATA = [
{
"name": "Python",
"type": "category"
}]
虽然我在使用变量var LIST_DATA 写入output.js 文件时遇到问题,但无论我对字符串做什么,最终结果都会显示为"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 文件中时,字符串都会与双引号一起传入...有没有办法解决这个问题?
谢谢。
【问题讨论】:
-
在编写
var LIST_DATA =时不要使用json.dumps,它会被解释为JSON 值,因此会被引号括起来。 -
var LIST_DATA = [...不是有效的 JSON,所以json.dumps永远不会输出它。你需要的是outfile.write('var LIST_DATA = '); json.dump(whatever_proper_data, outfile, indent=1)。 -
非常感谢大家,哇...当然,现在说得通了:json = quote...。