我在python中创建了一个很长的字符串列表,并希望将其写入JavaScript文件,而不会遇到文本换行问题。
另外,如果可以在python中自动执行,我想为此列表分配一个变量。这应该从python完成,但变量应该存在于.js文件中。即添加代码,而不是字符串。
我有什么:
lList_x = []
list_name = open('path/to/list.js', 'w+')
#list creation...
lList_x.append(stuff)
simplejson.dump(lList_x, list_name)
list_name.close()
这将在list.js ["a","b","c","d",....]
这里的问题是我创建的列表长度在10 000到500 000之间,因此列表会在每1024个字符之后拆分,这会破坏列表。这也使文件list.js在许多文本编辑器中呈现为只读 因此,如何创建此列表,但将每个元素添加到新行?
我还想在列表创建期间在python中自动为列表分配一个变量。这可能吗?
所以我想在我的js文件中:
window.lX = ["a",
"b",
"c",
...]
可以这样做吗?
答案 0 :(得分:2)
根据the documentation,您可以将indent=""
设置为跨越多行进行dump
“漂亮打印”而不缩进:
simplejson.dump(lList_x, list_name, indent="")
来自文档:
如果
indent
是一个字符串,那么JSON数组元素和对象成员将使用换行符进行漂亮打印,然后为每个嵌套级别重复该字符串。
答案 1 :(得分:1)
如何手动构建列表:
list_name.write("window.lX = [\n")
for item in lList_x:
print list_name.write(json.dumps(item), ",\n")