我总是呆在萨姆那儿

2024-04-25 16:55:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python3.7将表中的一些行写入csv。代码工作正常,但总是冻结在同一行中。你知道吗

错误发生在一个特定的字段中,因为删除该字段是编写器的工作。失败行中字段的值为“L'Hospitalet de Llobregat”。奇怪的是,其他具有该值的行都被写入了。程序冻结而不返回任何错误。一些有效行示例如下:

(280403,'28050',马德里,28,'28000010930800123 OA 001A')

(269432,'08905','L'Hospitalet de Llobregat',8,'08000760170907831 0041')

(280408,'09400','Aranda de Duero',9,'09000020052804534 BA')

(280412,'28009',马德里,28,'28000010021958373 BA D')

写入程序失败的行如下所示:

(269608,'08906',“L'Hospitalet de Llobregat”,8,'08000760015705728 EN 1')

table = self._db_con.execute(query)
with open(path, 'w',  encoding='utf-8') as csv_file:
    csv_writer = csv.writer(csv_file)
    for row in table:
        csv_writer.writerow(row)

编辑: 我放了一个计数器跳过写那一行,程序仍然冻结在同一点上。它写入的最后一行如下所示: (269575,'41006','塞维利亚',41,'41000800023167102 002B') 我不知道为什么程序会冻结,我已经用另外40个表测试了这段代码,它运行得非常好。你知道吗


Tags: csv代码程序示例错误tabledefile
1条回答
网友
1楼 · 发布于 2024-04-25 16:55:30

使用熊猫:

  • 您可以尝试使用几个函数将数据输入到熊猫中
  • 既然你已经有了table,我们就试试看

数据:

  • 假设您的数据已经在table中,并且
table = [(280403, '28050', 'Madrid', 28, '28000010930800123 OA 001A '),
         (269432, '08905', "L'Hospitalet de Llobregat", 8, '08000760170907831 0041 '),
         (280408, '09400', 'Aranda de Duero', 9, '09000020052804534 BA '),
         (280412, '28009', 'Madrid', 28, '28000010021958373 BA D '),
         (269608, '08906', "L'Hospitalet de Llobregat", 8, '08000760015705728 EN 1 ')]

代码

  • 前面提到的方法,可以直接从查询中读取,请参见文档中的实现。你知道吗
  • ^{}
import pandas as pd

df = pd.DataFrame(table)

# save to csv
df.to_csv('my_file.csv', index=False)

相关问题 更多 >