我有一个像这样的二维数组:

  [["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/

10-16 01:39