Python删除方括号

爬取古诗文并生成了CSV文件,但是运行出来内容中带有[ ],在使用replace去除掉的时候,诗文内容那一列去除完只剩下了最后一句诗,前面的诗句内容不见了。有的内容没爬出来显示的是空值在去掉[ ]后,后面的爬取的内容自动到了下一行。这是为什么呢,怎么解决这个问题

方括号在Python里代表一个列表,如果list里的数据只有一个,就直接用str(list[0])。如果有多个就遍历一下list

内容在list里,不要直接整个list转str,遍历一下

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7733636
  • 你也可以参考下这篇文章:python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候,csv文件自动分成两个单元格)
  • 除此之外, 这篇博客: 全国计算机等级考试二级教程Python(2019)编程题参考答案中的 5.编写一个程序,要求能够将元素为任意Python支持的类型(包括含有半角逗号的字符串)的列表转储为CSV,并能够重新正确解析为列表。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 这道题不太好理解,首先要把任意类型的转存成csv的话,任意类型都要转变成字符串,所以需要另外保留该类型的标志,以便后面从csv转换回来的时候可以知道类型。

  • 以下回答由chatgpt基于相关博客总结生成:

    我可以尝试回答问题:

    问题标题: Python如何正确去除CSV文件中的方括号

    首先需要明确一个点,CSV文件是由逗号分隔的一系列值组成的,方括号不是CSV文件中的一部分,只是在python中用来表示列表的一种语法。因此,如果你的CSV文件的某列中出现了方括号,需要做的不是去除方括号,而是将方括号内的内容提取出来。

    假设你的CSV文件是这样的:

    title,content
    title1,[content1, content2, content3]
    title2,[content4, content5]
    

    你可以使用python中的csv模块读取这个文件,然后对第二列的内容进行处理,例如:

    import csv
    import ast
    
    with open('example.csv') as f:
        reader = csv.reader(f)
        header = next(reader)
        for row in reader:
            content = ast.literal_eval(row[1])
            # 对于列表中的每个元素进行处理
            for item in content:
                item = item.strip()  # 去除空格
                ...
    

    这里使用了ast模块的literal_eval函数将字符串转成了python中的列表类型。如果你希望去除列表中的方括号并将元素以逗号分隔,可以使用join函数:

    import csv
    import ast
    
    with open('example.csv') as f:
        reader = csv.reader(f)
        header = next(reader)
        for row in reader:
            content = ast.literal_eval(row[1])
            # 对于列表中的每个元素进行处理
            content_str = ','.join([item.strip() for item in content])
            ...
    

    这样得到的content_str就是去除了方括号并用逗号分隔元素的字符串。

    如果你需要修改并保存CSV文件,可以使用csv模块的writer对象完成。代码示例如下:

    import csv
    import ast
    
    with open('example.csv') as f:
        reader = csv.reader(f)
        header = next(reader)
        rows = []
        for row in reader:
            content = ast.literal_eval(row[1])
            # 对于列表中的每个元素进行处理
            content_str = ','.join([item.strip() for item in content])
            rows.append([row[0], content_str])
    
    with open('new_example.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(header)
        writer.writerows(rows)
    

    这个代码片段将读取example.csv文件,对第二列内容进行处理,然后将结果写入到new_example.csv文件中。

    希望这个回答对你有所帮助。

获取的数据 是list 转成字符串 就行