我有一个像这样的二维数组:
[["x","0xacc2d9"],
["y","0x56ae57"]]
我想保存此数组,使其保留二维数组。
第一项带引号,第二项带引号。
因此,保存在文件中的结果应为:
[["x",0xacc2d9],
["y",0x56ae57]]
我尝试了各种方法,但是由于报价不是多余的东西,因此我无法将其删除。
我试过了。
lst. replace(""",")
另外,这个:
filename= 'test.txt'
with open(filename, 'w') as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(lst)
但是它将删除[],“”,我不想删除它们。
感谢您的帮助。
编辑2
出于某种原因,我需要输出使用双引号而不是单引号,因此输出必须为:其中x具有
double quotation
[["x",0xacc2d9],
["y",0x56ae57]]
最佳答案
并不完美,但它给您带来一些乐趣:
In [883]: lst = [["x","0xacc2d9"],
...: ["y","0x56ae57"]]
In [885]: with open('test.txt','w') as f:
...: f.write('[')
...: for row in lst:
...: f.write('[%r, %s]\n'%tuple(row))
...: f.write(']\n')
...:
In [886]: cat test.txt
[['x', 0xacc2d9]
['y', 0x56ae57]
]
您如何计划使用此文件?
为了更清楚地处理出括号(和报价替换):
In [887]: astr = '\n'.join(['[%r, %s]'%tuple(row) for row in lst])
In [888]: astr
Out[888]: "['x', 0xacc2d9]\n['y', 0x56ae57]"
In [895]: astr = astr.replace("'",'"')
In [896]: astr
Out[896]: '["x", 0xacc2d9]\n["y", 0x56ae57]'
In [897]: with open('test.txt','w') as f:
...: print('[%s]'%astr, file=f)
...:
In [898]: cat test.txt
[["x", 0xacc2d9]
["y", 0x56ae57]]
关于python - 如何摆脱数组中的内置引号并将其保存到文件中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55446141/