如何将导入的 csv 文件中的单引号删除到列表中?
How to remove single quotes from imported csv file into a list?
我将列表导出到 csv 文件中:
file = open('all_states.csv', 'w+', newline='')
# writing the data into the file
with file:
write = csv.writer(file)
write.writerows(all_states)
我从另一个脚本导入 csv 文件为:
with open('all_states.csv') as file:
reader = csv.reader(file)
states = list(reader)
file.close()
导出的原始数据为:
exp_data = [
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [0, 0, 1]],
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [-1, 0, 0]],
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [0, -1, 0]]
]
但是当我导入时,我得到了一些我想删除的单引号。
impo_data = [
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[0, 0, 1]'],
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[-1, 0, 0]'],
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[0, -1, 0]']
]
如何在导出或导入时删除引号?
据我所知,csv 格式的引文是可以的。但是如果你想删除引号,你可以试试下面的方法。导入 csv 文件时,定义 quotechar:
csv.reader(inp_file, delimiter=',', quotechar="'")
问题是您的 CSV 文件被读取为字符串,而您想要处理它,就好像它不是。您的商品看起来都是 JSON,所以只有 运行 到 json.loads
。
states = [[json.loads(item) for item in row] for row in reader]
我将列表导出到 csv 文件中:
file = open('all_states.csv', 'w+', newline='')
# writing the data into the file
with file:
write = csv.writer(file)
write.writerows(all_states)
我从另一个脚本导入 csv 文件为:
with open('all_states.csv') as file:
reader = csv.reader(file)
states = list(reader)
file.close()
导出的原始数据为:
exp_data = [
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [0, 0, 1]],
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [-1, 0, 0]],
[[0], [[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]], [0, -1, 0]]
]
但是当我导入时,我得到了一些我想删除的单引号。
impo_data = [
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[0, 0, 1]'],
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[-1, 0, 0]'],
['[0]', '[[1, 0, 0], [1, 0, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0]]', '[0, -1, 0]']
]
如何在导出或导入时删除引号?
据我所知,csv 格式的引文是可以的。但是如果你想删除引号,你可以试试下面的方法。导入 csv 文件时,定义 quotechar:
csv.reader(inp_file, delimiter=',', quotechar="'")
问题是您的 CSV 文件被读取为字符串,而您想要处理它,就好像它不是。您的商品看起来都是 JSON,所以只有 运行 到 json.loads
。
states = [[json.loads(item) for item in row] for row in reader]