我在 python 中从 .csv 文件写入 .sql 文件时遇到问题

问题描述 投票:0回答:1

我需要编写一个创建表的 .sql 文件。

我正在使用 pandas 导入 .csv 文件:

import os
import pandas as pd

csv_directory = '/.../test/'

# Lecture des fichiers CSV et génération des requêtes SQL
sql_queries = []
for file in os.listdir(csv_directory):
  if file.endswith('.csv'):
    df = pd.read_csv(csv_directory + file, header=None)  # Lecture du fichier CSV avec pandas
    table_name = file.split('.')[0]  # Utilisation du nom de fichier comme nom de table
    print (file)
    #print (table_name)
    #print (df)
    create_table_query = f"CREATE TABLE {table_name} (code TEXT NOT NULL, valeur TEXT NULL, description TEXT,CONSTRAINT {table_name}_pk PRIMARY KEY (code));"
    insert_data_query = f"INSERT INTO {table_name} (code, valeur, description) VALUES "
    insert_data_query += ', '.join([str(tuple(row)) for row in df.values]) + ';'
    sql_queries.append(create_table_query)
    sql_queries.append(insert_data_query)

# Écriture des requêtes SQL dans un fichier
with open('list.sql', 'w') as file:
    for query in sql_queries:
        file.write(query + '\n')

但我需要:

('non_concerne','Non concerné(e)','information non possible ou non pertinente pour l''élément décrit')

而不是

('non_concerne','Non concerné(e)',"information non possible ou non pertinente pour l'élément décrit")

python sql pandas csv export
1个回答
0
投票

如果字符串是由单引号定义的,Python 无法处理法语撇号。考虑用双打

''
替换字符串定义中的所有单标记
""

我认为可能有一个使用反斜杠和转义字符的解决方法,例如:

print('information non possible ou non pertinente pour l\'élément décrit')

给出:

information non possible ou non pertinente pour l'élément décrit

鉴于:

print('information non possible ou non pertinente pour l'élément décrit')

给出错误,因为字符串在 l: 之后结束

File "/tmp/ipykernel_75916/2440330730.py", line 1
    print('information non possible ou non pertinente pour l'élément décrit')
                                                             ^
SyntaxError: invalid syntax
© www.soinside.com 2019 - 2024. All rights reserved.