要約:すべてのPandasデータフレームのすべてのオブジェクト列に対して、オブジェクトを動的に文字列に変換したいです。 1回のコンバージョンについて同様の投稿がありましたが、どれも文字列へのダイナミックコンバージョンを扱っていません。Python + sqlAlchemy:dtypeオブジェクトを文字列に動的に変更します。
私はPython 3.xを使用して、SQL Serverデータベースに複数のJSONファイルを作成しています。 JSONファイルをインポートしてPandas DFに保存すると、その長さは未知であるため、すべての文字列がオブジェクトとして保存されます。したがって、私はSQL Serverにデータを書き込む際に、データ型がtext
なるように選択されるのではなくvarchar(255)
は、動的にstring
をDTYPEするDTYPE object
ですべての列を変換する方法がありますか?文字列は、最初の255文字で切り取ることができます。
私はパンダのデータフレームには文字列型がありません...
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ファイルの構造を考慮して、どのようにテーブルを動的に作成できるかという疑問に悩まされています。 sqlalchemyを使用してJSONファイルに指定された変数/データ型を使用してMSSQLでテーブルを作成する簡単な方法はありますか? – Dendrobates
これは実際には1つを作成しますが、目的の構造(varcharsではなくテキスト)で作成しません。 sqlalchemyが提供するto_sql関数を使用して、SQLのテキストではなくvarcharsを選択する簡単な方法はありますか? – Dendrobates