在将dictir=[]
变量写入CSV文件时遇到问题,因此在dictir=[]
列表中有两个字典,并且这两个字典中的每一个都包含一个关键字为["cities"]
的列表,每次由于某种原因在CSV文件上写入列表dictir=[]
时,关键字为["cities"]
的列表都会转换为CSV文件上的字符串,这是我如何编写列表的问题吗?还是整个代码?任何帮助都将是伟大的
它是如何写在data.csv
文件上的
,countrey,cities,time_visited
0,france,"['paris', 'lyon']",4
1,germany,"['Munich', 'Frankfurt']",9
在法国和德国的列表中没有""
的情况下,我希望data.csv
文件看起来怎么样
,countrey,cities,time_visited
0,france,['paris', 'lyon'],4
1,germany,['Munich', 'Frankfurt'],9
这是我在csv文件上写的代码
import pandas
import csv
dictir=[
{"countrey":"france",
"cities":["paris","lyon"],
"time_visited":4}
,
{"countrey":"germany",
"cities":["Munich","Frankfurt"],
"time_visited":9}
]
df = pandas.DataFrame(dictir)
to_csv_file=df.to_csv ("data.csv")
您可以使用quoting=csv.QUOTE_NONE
选项对df.to_csv()
禁用引用。但是,您还需要使用escapechar
选项来指定将在列表中的,
字符之前打印的转义字符。
import csv
df.to_csv("data.csv", quoting=csv.QUOTE_NONE, escapechar='\')
生成的CSV文件看起来像:
,countrey,cities,time_visited
0,france,['paris', 'lyon'],4
1,germany,['Munich', 'Frankfurt'],9
您需要引号或转义符,这样列表中的,
就不会被视为字段分隔符。如果您试图打印一个CSV,其中字段包含逗号,而您没有启用引号或转义符,则会出现错误。
当您保存为csv时,它会将任何列表转换为字符串。
要将其转换回列表,您可以这样做:
from ast import literal_eval
df["cities"] = df["cities"].apply(literal_eval)
您可以将其保存为pickle文件(而不是csv(,该文件会将其存储为列表。