有没有办法在我写入 CSV 文件时保持字典列表中的列表不转换为字符串,同时使用 Pandas 库



在将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(,该文件会将其存储为列表。

相关内容

  • 没有找到相关文章

最新更新