У меня есть функция с именем OpenAccount()
, которая берет данные у пользователя и добавляет ее в словарь моей базы данных.Добавление во время выполнения в словарь
У меня есть файл базы данных (модуль), который импортируется в мой файл функций.
У меня есть функция под названием AppendRecord (key, ** dictvalues), которая добавляет значения в мой файл базы данных.
Однако я не могу вызывать функцию и принимать значения во время выполнения для добавления. Он отлично работает с жестко заданными значениями. Я отправляю код. Пожалуйста, помогите мне.
def AppendRecord(key, **dictvalues):
salesDept[key] = dict(dictvalues)
и вызов для жестких закодированных значений ...
AppendRecord('Jill',Name='Jill', Acctype='Savings')
Теперь, когда я пытаюсь принять всех значений вместе с ключом от пользователя, я не могу позвонить function.I'm просто новичок в Python, так простите пожалуйста меня за любые ошибки:
Отредактировано код:
#/USR/бен/питон
import os #This module is imported so as to use clear function in the while-loop
import DB #Imports the data from database DB.py
def AppendRecord(key, **dictvalues):
DB.Accounts[key] = dict(dictvalues)
def OpenAccount(): #Opens a new a/c and appends to the database data-base.
while True:
os.system("clear") #Clears the screen once the loop is re-invoked
#Parameters taken from the user at Run-time so as to make entries in the database and append them
print '\n','Choose an Account Type'
print '\n','\n1)Savings Account','\n2)Current Account'
choice = input('Enter an optin: ')
if choice == 1:
name = raw_input('\nEnter a name: ')
depo = input('\nEnter amount(Rs.): ')
key = raw_input('\nEnter an alphanumeric-id: ')
acc= raw_input('\nEnter the Account-Type: ')
AppendRecord(key,Name=name,Initial_deposit=depo,Acctype=acc)
EDIT 1: Ошибки я получаю.
File "/usr/lib/python2.5/shelve.py", line 124, in __setitem__
self.dict[key] = f.getvalue()
TypeError: 'int' object does not support item assignment
EDIT 2:
Ниже приводится DB.py базы данных исходного файла кода.
#!/usr/bin/python
import shelve #Module:Shelve is imported to achieve persistence
Victor = {'Name':'Victor Hughes','Acctype':'Savings'}
Xavier = {'Name':'Xavier Bosco','Acctype':'Savings'}
Louis = {'Name':'Louis Philip','Acctype':'Current'}
Beverly = {'Name':'Beverly Dsilva','Acctype':'Current'}
Accounts = shelve.open('shelfile.shl') #Accounts = {}
Accounts['Louis']= Louis
Accounts['Beverly']= Beverly
Accounts['Xavier']= Xavier
Accounts['Victor']= Victor
Accounts.close()
Что пошло не так? есть ли сообщения об ошибках? Кроме того, у вас есть опечатка (я думаю, вы получите ошибку в противном случае) в вашем жестком закодированном звонке. Вы должны указывать только аргумент «Сбережения», а не весь ключевой элемент. – aaronasterling
aaronasterling - Я исправил опечатку. Спасибо. Я добавил сообщение об ошибке, пожалуйста, проверьте EDIT 1. – Pavitar
Нам нужна трассировка или более подробная информация о «невозможности вызова функции», чтобы мы могли вам помочь. :) –