Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建表时出现Python sqlalchemy错误_Python_Mysql_Pandas_Dataframe_Sqlalchemy - Fatal编程技术网

创建表时出现Python sqlalchemy错误

创建表时出现Python sqlalchemy错误,python,mysql,pandas,dataframe,sqlalchemy,Python,Mysql,Pandas,Dataframe,Sqlalchemy,我正在尝试获取一个.csv文件,过滤一些列,并使用新过滤的df创建一个新的MySQL表 问题是我在.csv中有一个特定的值,它具有不同的字符集,如下所示('\ufeffY'): 在那之后,我创建了一个新的df,并用重命名的列进行过滤。我正在尝试将这些值标准化。首先,我将删除不需要的空格,然后将其转换为小写(理论上,.CSV文件中此列的值应该只有“y”或“n”) 然后,我尝试设置为“?”任何与“y”或“n”不同的值,我相信这将修复原始df中的'\ufeffY'值 df2.loc[~df2['sup

我正在尝试获取一个
.csv
文件,过滤一些列,并使用新过滤的df创建一个新的MySQL表

问题是我在
.csv
中有一个特定的值,它具有不同的字符集,如下所示(
'\ufeffY'
):

在那之后,我创建了一个新的
df
,并用重命名的列进行过滤。我正在尝试将这些值标准化。首先,我将删除不需要的空格,然后将其转换为小写(理论上,.CSV文件中此列的值应该只有“y”或“n”)

然后,我尝试设置为
“?”
任何与“y”或“n”不同的值,我相信这将修复原始df中的
'\ufeffY'

df2.loc[~df2['supported'].isin(['y', 'n']), 'supported'] = '?'
如果在执行上述操作后选中
df2['supported'].unique()
,则得到以下结果:

array(['y', '?'], dtype=object)
我假设
'?'
可能是我试图摆脱的
'\ufeffY'
值,然后我尝试使用
df2
sqlalchemy
创建一个新表,方法如下:

df2.to_sql('ServersList', engine, index=False, if_exists='replace',
                  dtype={'supported': sqlalchemy.types.Text,
                         'server_name':  sqlalchemy.types.Text,
                         'owner': sqlalchemy.types.Text,
                         'critical': sqlalchemy.types.Text,
                         'business_function': sqlalchemy.types.Text,
                         'IP': sqlalchemy.types.Text,
                         'activated': sqlalchemy.types.DateTime(),
                         'service_type': sqlalchemy.types.Text,
                         'platform': sqlalchemy.types.Text,
                         'OS': sqlalchemy.types.Text,
                         'classification': sqlalchemy.types.Text,
                         'support_team': sqlalchemy.types.Text,
                         'virtual_server': sqlalchemy.types.Text,
                         'host_name': sqlalchemy.types.Text,
                         'location': sqlalchemy.types.Text,
                         'log': sqlalchemy.types.DateTime()}
        )
这就是我得到以下错误的时候:

UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 10: character maps to <undefined>
UnicodeEncodeError:“charmap”编解码器无法对位置10中的字符“\ufeff”进行编码:字符映射到
这条信息非常清楚,但我认为df2将不再具有该值,因此它应该可以工作


显然,我在这里遗漏了一些东西。

好吧,最后修复的是在.read_csv()函数调用期间添加enconding='utf-8',以防万一,我也将DB更改为utf8格式,默认情况下它被创建为utf8mb4

好吧,最后,修复了在.read_csv()函数调用期间添加enconding='utf-8',以防我也将DB更改为utf8格式,默认情况下,它创建为utf8mb4

,看起来像是数据库和机器默认编码之间的编码问题。也许下面的资源是有用的?谢谢亚科夫,的确如此。我必须在.read\u csv()调用中使用encoding='utf-8',并且我还将DB更改为utf8。我认为通过创建一个新的df并用“?”替换该值可以避免这种情况,但可以肯定的是,我在那里做了一些错误的事情。感谢您的回复。看起来您的数据库和计算机的默认编码之间存在编码问题。也许下面的资源是有用的?谢谢亚科夫,的确如此。我必须在.read\u csv()调用中使用encoding='utf-8',并且我还将DB更改为utf8。我认为通过创建一个新的df并用“?”替换该值可以避免这种情况,但可以肯定的是,我在那里做了一些错误的事情。我感谢你的答复。
df2.to_sql('ServersList', engine, index=False, if_exists='replace',
                  dtype={'supported': sqlalchemy.types.Text,
                         'server_name':  sqlalchemy.types.Text,
                         'owner': sqlalchemy.types.Text,
                         'critical': sqlalchemy.types.Text,
                         'business_function': sqlalchemy.types.Text,
                         'IP': sqlalchemy.types.Text,
                         'activated': sqlalchemy.types.DateTime(),
                         'service_type': sqlalchemy.types.Text,
                         'platform': sqlalchemy.types.Text,
                         'OS': sqlalchemy.types.Text,
                         'classification': sqlalchemy.types.Text,
                         'support_team': sqlalchemy.types.Text,
                         'virtual_server': sqlalchemy.types.Text,
                         'host_name': sqlalchemy.types.Text,
                         'location': sqlalchemy.types.Text,
                         'log': sqlalchemy.types.DateTime()}
        )
UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 10: character maps to <undefined>