【问题标题】:Splitting a value with comma in a csv file在 csv 文件中用逗号分割一个值
【发布时间】:2020-04-06 17:54:49
【问题描述】:

我正在尝试在 python 中拆分一个 csv 文件。但是某些值(在一个单元格中)中有逗号。但该函数也在拆分它,因此给了我比预期更多的列。

以下是我的代码:

data = open('FInal_epm-00000-of-00001').read()
lines_of_data = data.splitlines()
tmp = []
for i in range(len(lines_of_data)):
    tmp.append(re.split('\',|, ',lines_of_data[i]))

以下是示例输入:

['string_value', 'string_value', int_value, float_value, 'string_val, string_val']

理想输出:

row 1 :string_value, string_value, int_value, float_value, 'string_val, string_val'

我得到的输出:

row 1 : string_value, string_value, int_value, float_value, string_val, string_val

【问题讨论】:

  • 为工作使用正确的工具。 docs.python.org/3/library/csv.html
  • 使用 csv 模块。大量关于 SO 的示例。
  • 这实际上是一个输入行?那么它根本不是一个csv文件。 int_value 到底是什么?一个字面上就是那些字符的字符串?那么输出呢......你附加到一个列表但你的输出是一行?我们确实需要什么进出什么。
  • 是的,它是一个输入行(它是一个 pcollection)并且用于 int_value 。您可以假设任何 int 值,因为我只想说输入数据是字符串及其值的混合。
  • 最好只发布一个输入行而不是一些伪代码来描述数据的样子。您发布的不是 CSV。如果 int_value 只是我们应该填写的整数的占位符......为我们做这件事!例如,一个例子可以是"foo,bar,20,1.222,'baz, qux'",期望的输出是一个python列表["foo", "bar", 20, 1.222, "baz, qux"]

标签: python csv apache-beam python-2.x


【解决方案1】:

使用csv library。它会为您解决所有这些问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2012-07-08
    • 2022-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多