Кто-нибудь, пожалуйста, помогите мне с этим, я новичок в языке Python!
У меня есть файл Excel с колонками, такими как Название банка, О, Продукты, Популярные продукты, Кредиты, Страхование, Карты и Банковское дело.
Я только что прочитал файл Excel и обновил его значение в моей базе данных, но формат, в котором я хочу, чтобы моя база данных выглядела для Типа продукта, должен выглядеть примерно так:
{"'Account':['Savings','Current'], 'Loan':['Consumer Loan','Personal Loan','Housing Loan','Vehicle Loan','MSME Loan'], 'Maha eTrade Online Share Trading':None, 'Maha Mobile Banking':None, 'Internet Banking':None}
Но в настоящее время мои данные в базе данных заполняются так:
{"{'Account':['Savings','Current']}","{'Loan':['Consumer Loan','Personal Loan','Housing Loan','Vehicle Loan','MSME Loan']}","Maha eTrade Online Share Trading","Maha Mobile Banking","Internet Banking"}
Вот мой код:
def update_bank_data():
from loans.models import BankData
filename = 'filecontainer/ifscdata/Final Updated Banksheet.xlsx'
exist =0
if os.path.isfile(filename):
print("file exists")
exist = 1
if exist:
xl_workbook = xlrd.open_workbook(filename)
print("------------new file=-----------------------")
print(filename)
sheet_names = xl_workbook.sheet_names()
print('Sheet Names', sheet_names)
j = 1
for sheet in sheet_names:
xl_sheet = xl_workbook.sheet_by_name(sheet)
no_of_row = xl_sheet.nrows + j
print no_of_row
next_bank_row_num=None
currnt_bank_row_num=None
j=1
try:
while (j < no_of_row):
if next_bank_row_num:
currnt_bank_row_num = next_bank_row_num
print("current bank----->", xl_sheet.cell_value(currnt_bank_row_num, 0))
else:
currnt_bank_row_num = j
print("current bank----->", xl_sheet.cell_value(currnt_bank_row_num, 0))
j = j + 1
while (xl_sheet.cell_value(j, 0) == '' or xl_sheet.cell_value(j, 0) == None):
j = j + 1
next_bank_row_num = j
j = j + 1
def fetch_value_list(currnt_bank_row_num, column, max_limit, xl_sheet):
try:
print ("fetching column data===============")
print(currnt_bank_row_num, column, max_limit)
k = currnt_bank_row_num
value = []
while (k < max_limit):
if (xl_sheet.cell_value(k, column) == '' or xl_sheet.cell_value(k, column) == None):
break
else:
data = xl_sheet.cell_value(k, column)
value.append(data)
k = k + 1
return value
except Exception as e:
print e.message
pass
bank_name = xl_sheet.cell_value(currnt_bank_row_num, 0)
about = fetch_value_list(currnt_bank_row_num, 1, next_bank_row_num, xl_sheet)
product = fetch_value_list(currnt_bank_row_num, 2, next_bank_row_num, xl_sheet)
pop_product = fetch_value_list(currnt_bank_row_num, 3, next_bank_row_num, xl_sheet)
loans = fetch_value_list(currnt_bank_row_num, 4, next_bank_row_num, xl_sheet)
insurance = fetch_value_list(currnt_bank_row_num, 5, next_bank_row_num, xl_sheet)
card = fetch_value_list(currnt_bank_row_num, 6, next_bank_row_num, xl_sheet)
banking = fetch_value_list(currnt_bank_row_num, 7, next_bank_row_num, xl_sheet)
print ("Create Data")
BankData.objects.filter(bank_name=bank_name).update(popular_prduct=pop_product, product=product, about= about, loans=loans, insurance=insurance, card=card, banking=banking)
print("next_bank_row", xl_sheet.cell_value(next_bank_row_num, 0))
except Exception as e:
print e.message
pass
pass