sqliteデータベースからデータを取得してプロットする簡単なスクリプトを作成したかったのです。しかし、私がモジュールをインポートするとき、それは私がやったことを好まない。誰かが私が間違っていることについて私に指示することはできますか?モジュールの作成とインポート - NameError:グローバル名 'c'が定義されていません
同じipythonのノートブックで実行した場合、各スクリプトは、私は以下のコードでモジュールをクリートしようとすると、それは失敗し、作品:
をマイpulldata.pyスクリプト:
def main()
import matplotlib.pyplot as plt
import datetime
import sqlite3
c = sqlite3.connect('Test_db19.db')
c.connect()
def pull_data(table1, field1):
x_axis = []
y_axis = []
dates = []
for row in c.execute('SELECT date, {fn} FROM {tn} ORDER BY date'.format(tn=table1, fn=field1)):
y_axis.append(row[1])
dates.append(row[0])
for date in dates:
date1 = datetime.datetime.strptime(date, "%m/%Y").date()
x_axis.append(date1)
plt.plot(x_axis,y_axis, marker = "o")
plt.xlabel('Date')
plt.ylabel(field1)
plt.title(table1)
plt.xticks(rotation=70)
plt.legend()
plt.show()
if __name__ == "__main__":
main()
それをインポートしようとすると:
import pulldata as pd
pd.pull_data(table_name, column_name)
私は取得しています:
を"NameError: global name 'c' is not defined"
アドバイスや助力をいただければ幸いです。
答えをいただきありがとう、本当に役に立ちます。私はあなたが__main__について何を意味するのかを見て、私は今それを修正するでしょう。しかし、私はまだ同じエラーを表示するようですか? "グローバル名cは定義されていません"? – Ciaran
すべてをリセットしてもう一度実行して、完璧に動作しました!ありがとう!!私はあなたが今から説明した方法をモジュールに取り組むことを確実にします! – Ciaran