我试图创建一个文本文件,字典中存储了一些值,这样以后我就可以检索它,但是写会创建多个字典--我只能创建一个字典--而且返回的数据类型是字符串--如何使用它作为字典,请原谅我是python新手,
我尝试了json方法,但是我得到了typeerror-object-of-type-method-is-not-json-serializable
import json
mydic = {}
for i in range(3):
uname = input("enter uname\n")
pwd = input("enter pwd\n")
mydic[uname] = pwd
print(mydic)
with open("cd.txt","a+") as file:
file.write(str(mydic))
with open("cd.txt","r") as file:
data = file.read()
print(data,type(data))数据被保存如下1-3,我在第一次尝试中输入了4-6,第二次尝试,你可以看到2种不同的dictionay被创建。
{'1': '1', '2': '2', '3': '3'}{'4': '4', '5': '5', '6': '6'}发布于 2022-07-09 06:49:41
您正在将字典的字符串转换添加到文件中。每次运行程序时,a+标志都会告诉它以字符串的形式追加。
您可以使用json格式来修复这个问题,就像您导入的那样:
import json
mydic = {}
# Read existing data
with open('cd.json', 'r') as jsonFile:
mydic = json.load(jsonFile)
# Get usernames and passwords
for i in range(3):
uname = input("enter uname\n")
pwd = input("enter pwd\n")
mydic[uname] = pwd
print(mydic)
# Write new values
with open('cd.json', 'w') as jsonFile:
json.dump(mydic, jsonFile, indent=4, sort_keys=True)首先读取现有值,然后运行您编写的获取用户名和密码的代码,最后将所有数据保存到json文件中。
发布于 2022-07-09 06:42:47
您需要以JSON的形式处理文件中的内容,这是更新内容的最简单方法,而不是将其作为附加的字典的字符串版本处理。
我使用pathlib.Path来促进文件交互。
import json
from pathlib import Path
file = Path("cd.json")
if file.exists(): # load existing data
mydic = json.loads(file.read_text())
else: # create new
mydic = {}
# add more data
for i in range(3):
uname = input("enter uname\n")
pwd = input("enter pwd\n")
mydic[uname] = pwd
print(mydic)
# save in file
file.write_text(json.dumps(mydic))
# load back to verify
mydic = json.loads(file.read_text())
print(mydic)发布于 2022-07-09 06:51:35
尝试在csv文件中以Pandas Dataframe的形式编写字典。从csv文件中写入和读取要简单得多。将来,如果您有多个字典,那么您只需列出一个字典列表并写入csv文件即可。
import pandas as pd
df=pd.DataFrame([your_dictionary])
df.to_csv(file_name)
#read csv
read_df = pd.read_csv(file_name)
dict_list=read_df.to_dict('records') #this will give you the list of dictionarieshttps://stackoverflow.com/questions/72919452
复制相似问题