GVKun编程网logo

将字典保存到Python中的文件(替代pickle)吗?(python将字典保存在文件中)

20

本文将分享将字典保存到Python中的文件的详细内容,并且还将对替代pickle吗?进行详尽解释,此外,我们还将为大家带来关于C#:如何将字典保存到文本文件中?、Python2.x中如何使用pickl

本文将分享将字典保存到Python中的文件的详细内容,并且还将对替代pickle吗?进行详尽解释,此外,我们还将为大家带来关于C#:如何将字典保存到文本文件中?、Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象、Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象、python 3中的pickle和_pickle有什么区别?的相关知识,希望对你有所帮助。

本文目录一览:

将字典保存到Python中的文件(替代pickle)吗?(python将字典保存在文件中)

将字典保存到Python中的文件(替代pickle)吗?(python将字典保存在文件中)

回答 我还是最后还是泡菜了

好的,因此我对另一个问题提出了一些建议,我被告知要使用咸菜将字典保存到文件中。

我试图保存到文件的字典是

members = {''Starspy'' : ''SHSN4N'', ''Test'' : ''Test1''}

泡菜将其保存到文件中时…这是格式

(dp0S''Test''p1S''Test1''p2sS''Test2''p3S''Test2''p4sS''Starspy''p5S''SHSN4N''p6s.

您能给我一种将字符串保存到文件的替代方法吗?

这是我想要保存的格式

成员= {‘Starspy’:’SHSN4N’,’Test’:’Test1’}

完整的代码:

import sysimport shutilimport osimport pickletmp = os.path.isfile("members-tmp.pkl")if tmp == True:    os.remove("members-tmp.pkl")shutil.copyfile("members.pkl", "members-tmp.pkl")pkl_file = open(''members-tmp.pkl'', ''rb'')members = pickle.load(pkl_file)pkl_file.close()def show_menu():    os.system("clear")    print "\n","*" * 12, "MENU", "*" * 12    print "1. List members"    print "2. Add member"    print "3. Delete member"    print "99. Save"    print "0. Abort"    print "*" * 28, "\n"    return input("Please make a selection: ")def show_members(members):    os.system("clear")    print "\nNames", "     ", "Code"    for keys in members.keys():        print keys, " - ", members[keys]def add_member(members):    os.system("clear")    name = raw_input("Please enter name: ")    code = raw_input("Please enter code: ")    members[name] = code    output = open(''members-tmp.pkl'', ''wb'')    pickle.dump(members, output)    output.close()    return members#with open("foo.txt", "a") as f:#     f.write("new line\n")running = 1while running:    selection = show_menu()    if selection == 1:        show_members(members)        print "\n> " ,raw_input("Press enter to continue")    elif selection == 2:        members == add_member(members)        print members        print "\n> " ,raw_input("Press enter to continue")    elif selection == 99:        os.system("clear")        shutil.copyfile("members-tmp.pkl", "members.pkl")        print "Save Completed"        print "\n> " ,raw_input("Press enter to continue")    elif selection == 0:        os.remove("members-tmp.pkl")        sys.exit("Program Aborted")    else:        os.system("clear")        print "That is not a valid option!"        print "\n> " ,raw_input("Press enter to continue")

答案1

小编典典

当今,最常见的序列化格式是JSON,JSON被普遍支持,并且非常清楚地表示简单的数据结构(如字典)。

>>> members = {''Starspy'' : ''SHSN4N'', ''Test'' : ''Test1''}>>> json.dumps(members)''{"Test": "Test1", "Starspy": "SHSN4N"}''>>> json.loads(json.dumps(members)){u''Test'': u''Test1'', u''Starspy'': u''SHSN4N''}

C#:如何将字典保存到文本文件中?

C#:如何将字典保存到文本文件中?

我到处都读过,无法弄清楚如何将字典保存为.txt文件.我知道你不能只保存字典,你需要将它转换为字符串,但我坚持这一点.我不知道如何将它转换为字符串,编写它,然后再读回来并将其从字符串转换为字典.

public static Dictionary<string,string> dict = new Dictionary<string,string>();

解决方法

尝试查找序列化.您可以将Dictionary序列化为二进制并将其存储在文件中.请参阅 BinaryFormatter on msdn.简单地说,您可以:

var binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(fileStream,dict);

还有一个XmlSerializer class.

Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象

Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象

python中有一个很方便的模块,叫做pickle,它可以将python对象序列化为字符串,并且可以将这个字符串反序列化为python对象。这个模块可以帮助我们在程序中保存数据和状态,便于以后的使用和恢复。接下来我将介绍如何使用pickle模块将字符串反序列化为python对象。

首先,我们需要导入pickle模块。在Python 2.x中,可以使用以下代码实现:

import pickle
登录后复制

接下来,我们需要定义一个字符串,这个字符串是我们要反序列化的对象。假设我们有以下字符串:

data_string = "(i13
(VHello, World!
p0
."
登录后复制

接着,我们可以使用pickle模块的loads函数将字符串反序列化为Python对象。代码示例如下:

data_object = pickle.loads(data_string)
登录后复制

在上面的示例代码中,data_string是我们要反序列化的字符串,而data_object是反序列化后的Python对象。

立即学习“Python免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

接下来,我们可以对这个Python对象进行操作或者访问其属性。例如,我们可以直接打印这个Python对象的值:

print(data_object)
登录后复制

我们也可以访问Python对象的属性:

print(data_object[0])
print(data_object[1])
登录后复制

最后,当我们完成对Python对象的操作后,如果要将其再次序列化为字符串,可以使用pickle模块的dumps函数。示例代码如下:

data_string = pickle.dumps(data_object)
登录后复制

在上面的示例代码中,data_object是我们要序列化的Python对象,而data_string是序列化后的字符串。

综上所述,使用pickle模块将字符串反序列化为Python对象的过程是非常简单的。我们只需导入pickle模块,然后使用loads函数将字符串反序列化为Python对象,之后就可以对该对象进行操作。

总结一下,pickle模块是Python中非常有用的工具,它可以帮助我们在程序中保存数据和状态。通过pickle模块,我们可以将Python对象序列化为字符串,并且可以将这个字符串反序列化为Python对象。这使得我们能够方便地保存和恢复程序的状态。希望本文对你有所帮助!

以上就是Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象的详细内容,更多请关注php中文网其它相关文章!

Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象

Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象

python是一种广泛使用的高级编程语言,拥有强大的功能和丰富的库。其中,pickle模块是python标准库的一部分,它提供了一种简单的方法来序列化(将python对象转化为字节流)和反序列化(将字节流转化为python对象)python对象。本文将介绍如何在python 3.x中使用pickle模块将字符串反序列化为python对象,并附带代码示例。

在开始之前,我们需要先了解pickle模块的基本原理和一些注意事项。pickle模块使用了特定的算法将Python对象转化为字节流,并保存到磁盘或传输到其他计算机上。在反序列化时,pickle模块能够将字节流重新转化为Python对象。注意,pickle模块只能用于序列化Python内置的数据类型、自定义的类和函数。而对于一些外部的模块、文件句柄等,pickle模块是不能序列化的。

下面是一个简单的示例,展示了如何使用pickle模块将字符串反序列化为Python对象:

import pickle

# 定义一个字符串
string_data = "Hello, World!"

# 使用pickle模块将字符串序列化为字节流
byte_data = pickle.dumps(string_data)

# 使用pickle模块将字节流反序列化为Python对象
object_data = pickle.loads(byte_data)

# 打印反序列化后的Python对象
print(object_data)
登录后复制

在上述示例中,我们首先定义了一个字符串string_data,其中保存了"Hello,World!"这个字符串。然后,我们使用pickle.dumps(string_data)将该字符串序列化为字节流,并将结果保存在byte_data中。接着,我们使用pickle.loads(byte_data)将字节流重新反序列化为Python对象,并保存在object_data中。

最后,我们使用print(object_data)来打印反序列化后的Python对象。在这个示例中,我们希望输出的结果是"Hello, World!"。

立即学习“Python免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

需要注意的是,pickle模块除了dumps()和loads()这对用于序列化和反序列化的函数,还提供了一些其他常用的函数,如dump()和load()用于将字节流保存到文件或从文件中读取字节流。此外,如果你需要序列化和反序列化自定义的类或函数,你需要在这些类或函数的定义中实现__getstate__和__setstate__这两个特殊方法。

综上所述,pickle模块是Python中用于序列化和反序列化的重要工具。它可以帮助我们将Python对象转化为字节流,以便在不同的环境中进行传输和保存。通过使用pickle模块,我们可以轻松地将字符串反序列化为Python对象,并对其进行操作和处理。

希望通过本文的介绍,读者能够掌握在Python 3.x中使用pickle模块将字符串反序列化为Python对象的方法,并能够灵活地应用到实际的项目开发中。

以上就是Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象的详细内容,更多请关注php中文网其它相关文章!

python 3中的pickle和_pickle有什么区别?

python 3中的pickle和_pickle有什么区别?

我是python的新手,想要实现 快速
对象序列化。我试图使用json,但是速度太慢,也试图使用marshall模块,但是由marshall序列化的对象的大小是pickle的6到7倍,所以我决定在我的项目中使用pickle。我读了有关cPickle模块的信息,读得很快,但是python
3中没有这样的模块,而文档说名为_pickle的模块是用C编写的。所以在我的项目中,我使用

import _pickle as pickle

pickle和_pickle有什么区别吗?我如何实现更快的对象序列化/反序列化?

今天关于将字典保存到Python中的文件替代pickle吗?的分享就到这里,希望大家有所收获,若想了解更多关于C#:如何将字典保存到文本文件中?、Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象、Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象、python 3中的pickle和_pickle有什么区别?等相关知识,可以在本站进行查询。

本文标签: