簡體   English   中英

Python CSV導入在Django中不起作用

[英]Python CSV import not working in django

得到了這個load_data.py文件,將csv數據導入到django模型表中...但是它不起作用,在終端中,當我執行命令“ python3 ./load_data.py”時,它就像在load.py一樣進入同一行甚至沒有這樣稱呼:

(cost_control_local) juanda@juanda-VirtualBox:~/cost_control_repository/cost_control/csv_data$ python3 ./load_data.py
(cost_control_local) juanda@juanda-VirtualBox:~/cost_control_repository/cost_control/csv_data$ 

這是load_data.py代碼:

import csv,sys,os
import django

pathproject = "/home/juanda/cost_control_repository/cost_control"
base_csv_filepath = "/home/juanda/cost_control_repository/cost_control/csv_data"
sys.path.append(pathproject)
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings.local'
django.setup()

from cost_control_app.models import Suppliers

def load_suppliers():
    print ("Entering...")
    csv_file = base_csv_filepath + "supplier_data.csv"
    dataReader = csv.reader(open(csv_file, encoding='utf-8'),delimiter=',',quotechar='"')
    #dataReader = csv.reader(open(csv_file), delimiter=',', quotechar='"')
    for row in dataReader:
        if row[0] != 'ID':
            Suppliers.objects.create(
                supplier=row[0],
                supplier_description=row[1]
            )
    print ("Imported correctly")

有任何想法嗎 ? 謝謝你的幫助 !!

您需要在代碼底部編寫:

if __name__ == "__main__":
    load_suppliers()

查看此stackoverflow問題以了解更多信息。

還引用了python doc

main ”是執行頂級代碼的范圍的名稱。 從標准輸入,腳本或交互式提示中讀取時,模塊的名稱設置為等於“ main ”。

模塊可以通過檢查其自身的名稱來發現其是否在主作用域中運行,這允許使用通用習語在模塊中以腳本或python -m方式運行時有條件地執行模塊中的代碼,而在導入時則不能:

csv_file = base_csv_filepath + "/supplier_data.csv"

添加了/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM