写一个很长的列表(和赋值变量)到文件没有文本包装问题

时间:2014-05-18 11:33:43

标签: python list dump

我在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",
...]

可以这样做吗?

2 个答案:

答案 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")