python - 消除 ',' .join() 调用生成的双引号

标签 python list dictionary

List_final 是我构建的全局变量,用于将数据推送为 csv 格式。

下面代码中的 key_values 返回双引号中的结果。所以我的最终列表有一个我试图删除的双引号。

for entry,value_all in csv_data.iteritems():

        list_temp=[entry]
        key_values = ','.join(value_all.itervalues())    
        str(key_values).replace('"', '')

        list_temp.append(str(key_values))
        list_final.append(list_temp) 

with open('test.csv', 'w') as fp:
        writer = csv.writer(fp,delimiter=',',quotechar='"')
        writer.writerows(list_final)

输出:

2018-01-27T08:00:00.000Z,"11,14,16,65,234,7,7,574"
2018-01-28T08:00:00.000Z,"1095,141,1646,638,2360,6,6,576"

最佳答案

引号不是','.join 本身引入。重点是 CSV 作者看到一个带逗号的字符串,因此决定转义该字符串并将其用引号引起来。

但是根据示例输出,我认为您希望数据显示为单独的列。使用 CSV 编写器的想法是您不必自己进行字符串构造。如果你想把它写成单独的值,你可以使用:

for entry,value_all in csv_data.iteritems():
        list_temp=[entry]
        list_temp += value_all.itervalues()
        list_final.append(list_temp) 

with open('test.csv', 'w') as fp:
        writer = csv.writer(fp,delimiter=',',quotechar='"')
        writer.writerows(list_final)

或者我们可以使用列表理解:

list_final = [[entry, *value_all.itervalues()]
              for entry,value_all in csv_data.iteritems()]

with open('test.csv', 'w') as fp:
        writer = csv.writer(fp,delimiter=',',quotechar='"')
        writer.writerows(list_final)

关于python - 消除 ',' .join() 调用生成的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48560045/

相关文章:

python - 在一个命令中使用 virtualenv 和 pip 设置新的开发环境

python - 对列表中的值求和(python)

list - tcl lsearch 列表列表

python - 有没有办法遍历两个字典中的所有键并更改所有重复的项目,以便字典的项目全部不同

python - 根据标准分析一列数据框的数据

python - django 1.7 & 删除 postgres 数据库并重新创建它

python - 使用正则表达式在一段时间之前获取所有内容?

python - 在Python中获取超出范围的索引默认值

ios - withContentsofURL 可以声明超时限制吗?

python - 映射字典值,而不是字典键