我目前正试图构建和应用程序来管理预算或费用,我是python的新手,所以我从一个朋友那里得到了帮助,我对编码的所有过程都不太熟悉。所以,我为用户创建了一个类,另一个用于加载列表,另一个用于将列表写入(注入)在用户类中创建的JSON中。我希望我解释清楚了。
这是用户代码:
import os
import json
class Usuario:
def __init__(self,nombre):
self.nombre = nombre
self.verify_json()
print(f"Te damos la bienvenida {self.nombre}")
def get_nombre(self):
return self.nombre
def save_json(self,nombre):
with open('data/'+nombre +"_usuario.json","w") as f:
json.dump(self.nombre,f,indent=4)
def verify_json(self):
if not os.path.exists('data/'+self.nombre + '_usuario.json'):
self.save_json(self.nombre)
else:
with open('data/'+self.nombre + '_usuario.json', 'r') as file:
return json.load(file)
def get_json(self):
dir = 'data/'+ self.nombre + '_usuario.json'
with open(dir, 'r') as file:
return json.load(file)
我已经改变了几次,因为当我从另一个脚本调用JSON文件时,我得到了一个错误,它不是一个str。现在,从这里我叫它:
class w_jason():
def __init__(self,archivo_json,lista_cuentas, nombre):
self.nombre = nombre
self.archivo_json = archivo_json
self.lista_cuentas = lista_cuentas
self.meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio',
'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']
self.archivo_user = self.leer_json()
def listas_in_json(self):
self.cuentas_dict = {self.lista_cuentas[i]: [] for i in range(len(self.lista_cuentas))}
self.meses_dict = {self.meses[i]: self.cuentas_dict for i in range(len(self.meses))}
return self.meses_dict
def leer_json(self):
with open(self.archivo_json, 'r') as file:
return json.load(file)
def edit_json(self):
with open(self.archivo_json, 'w') as file:
json.dump(self.archivo_user, file, indent=4)
这个类接收已经创建的json归档文件的路径,但是我得到了错误:
Traceback (most recent call last):
File "/Users/jabac/Desktop/work/proyecto_cuenta/scripts/test.py", line 7, in <module>
m_json = w_jason(mariana.get_json, marian_cuentas.get_lista_cuentas, mariana.get_nombre)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jabac/Desktop/work/proyecto_cuenta/scripts/write.py", line 19, in __init__
self.archivo_user = self.leer_json()
^^^^^^^^^^^^^^^^
File "/Users/jabac/Desktop/work/proyecto_cuenta/scripts/write.py", line 28, in leer_json
with open(self.archivo_json, 'r') as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not method
我不知道该怎么办。”我返回了一个带有文件路径的str,但它也给了我同样的错误,现在我试着只返回JSON文件,仍然得到错误。
几分钟前,这个应用程序还在工作,我不知道我做了什么改变了这种行为。
很抱歉,如果这是太长了,并提前感谢!
1条答案
按热度按时间jutyujz01#
我解决了它,对不起,伙计们,我没有把()后调用的方法。