简而言之:我想将对象动态地转换为我所有Pandas数据框中所有对象列的字符串。我看到有关单个转换的类似帖子,但没有一个处理动态转换为字符串。Python + sqlAlchemy:将dtype对象更改为动态字符串
我正在使用Python 3.x编写多个JSON文件到我们的SQL Server数据库。当我导入JSON文件并将其存储在Pandas DF中时,所有字符串都将作为对象存储,因为该长度事先未知。因此,当我将数据写入到SQL Server中,数据类型选择为text
而非varchar(255)
有没有一种方法可以动态转换的所有列与D型object
到D型string
?字符串可能会在前255个字符处剪切。
我尝试以下,但做的Python崩溃......
url = 'some-url-to-json-file'
params['connectionString'] = 'driver://user:[email protected]/database'
engine = sqlalchemy.create_engine(connectionString)
response = requests.get(url)
pandasDF = pandas.DataFrame(response.json()['value'])
# Convert Objects to Strings
for cName in list(pandasDF.columns.values):
if pandasDF[cName].dtype == 'object':
pandasDF[cName] = pandasDF[cName].to_string
pandasDF.to_sql(tableName, engine, if_exists = 'append')
您不必创建我猜的表格。如果它不存在,熊猫会创建它。如果它已经存在,可以追加。 – MYGz
Thx为您的快速回复。我正在努力解决如何在给定底层JSON文件结构的情况下动态创建表的问题。有没有一种简单的方法可以在MSSQL中创建表,使用sqlalchemy和JSON文件中给出的变量/数据类型? – Dendrobates
它的indeises创建一个,但不是与所需的结构(文本,而不是varchars)。使用sqlalchemy提供的to_sql函数,是否有一种简单的方法可以选择varchars而不是SQL中的文本? – Dendrobates