DataframeをOracleテーブルにエクスポートしようとしていて、エラーが発生し続けています。私のコマンドを実行するためにTypeErrorをバイパスできますか?
TypeError: expecting string or bytes object
私が持っているものをエクスポートするために、このエラーを無視または回避できるようにしたいと思います。それは可能ですか?
ここでは、問題の全体を詳細に説明するリンク先:Python - TypeError: expecting string or bytes objectです。私のデータは正直なところ完璧に表示されています。一貫して正しい数の列と行です。データ型はすべて同じです。これまでに何百ものデータフレームをエクスポートするのにこの正確なメソッドを使用しました。私がこれまで持っていたものを輸出するために、エラーメッセージ。
また、cursor.executemany(
行で失敗するため、私はそのコマンドを調べることにしました。 cx_Oracle
のドキュメントはhttp://cx-oracle.readthedocs.io/en/latest/cursor.htmlです。
When true, the batcherrors parameter enables batch error support within Oracle and ensures that the call succeeds even if an exception takes place in one or more of the sequence of parameters.
は、だから私はcursor.executemany(sql_query, exported_data, batcherrors=True)
としてtrueに設定すると、それは何も変わっていない:それはと述べています。ここで
は私の関連するコードです:
df = pd.read_excel(file_path)
df = df.fillna(0)
df = df.ix[1:]
cursor = con.cursor()
exported_data = [tuple(x) for x in df.values]
#exported_data = [str(x) for x in df.values]
#print("exported_data:", exported_data)
sql_query = ("INSERT INTO FISHTABLE(date_posted, stock_id, species, pounds, advertised_price, email_year, email_month, email_day, sector_name, ask)" "VALUES(:1, :2, :3, :4, :5, :6, :7, :8, 'Sustainable Harvest Sector', '1')")
cursor.executemany(sql_query, exported_data)
con.commit() #commit to database
cursor.close()
con.close()
そして、ここではexported_data
のプリントアウトです:
[('DATE', 'TRADE ID', 'AVAILABLE STOCK', 'AMOUNT', 'BUY PRICE', '2013', '4', '16'), ('04/02/13', 130014, 'WINTER SNE', 12000, 'TRADE IN RETURN FOR', '2013', '4', '16'), (0, 0, 0, 0, 'HADDOCK GOM,', '2013', '4', '16'), (0, 0, 0, 0, 'YELLOWTAIL GOM, OR', '2013', '4', '16'), (0, 0, 0, 0, 'WITCH - OFFERS', '2013', '4', '16'), ('FY13 QUOTA – TO BUY', 0, 0, 0, 0, '2013', '4', '16'), ('DATE', 'TRADE ID', 'DESIRED STOCK', 'AMOUNT', 'BUY PRICE', '2013', '4', '16'), ('3/26/13', 130006, 'COD GBE', 'ANY', 'OFFERS', '2013', '4', '16'), ('4/9/13', 130012, 'COD GBW', 'UP TO 100,000', 0.3, '2013', '4', '16'), ('3/26/13', 130007, 'COD GBW', 'ANY', 'OFFERS', '2013', '4', '16'), ('3/26/13', 130001, 'COD GOM', 'INQUIRE', 1.5, '2013', '4', '16'), ('3/26/13', 130009, 'WINTER GB', 'ANY', 'OFFERS', '2013', '4', '16'), ('4/9/13', 130013, 'WINTER SNE', 'UP TO 100,000', 0.3, '2013', '4', '16'), ('3/26/13', 130010, 'WINTER SNE', 'ANY', 'OFFERS', '2013', '4', '16'), ('3/26/13', 130008, 'YELLOWTAIL GB', 'ANY', 'OFFERS', '2013', '4', '16'), ('3/26/13', 130011, 'YELLOWTAIL GOM', 'ANY', 'TRADE FOR GB STOCKS -\nOFFERS', '2013', '4', '16'), (1, 0, 0, 0, 0, '2013', '4', '16')]
私はそれに引っかかってきたので、私は本当に助けのようにこれを解決するだろう今一週間以上。ありがとう。あなたがエラー処理のために何をしたいか
他の質問を参照する代わりに、この質問に関連するコードスニペットを追加してください。 –