在另一个python文件中编辑和保存字典



我有两个python文件,file1.py只有一个字典,我想读&从file2.py写入那个字典。两个文件都在同一目录中。

我可以使用importfile1读取它,但我该如何写入该文件。

代码段:

file1.py(除了以下数据外,文件1中没有其他内容)

dict1 = {
        'a' : 1,      # value is integer
        'b' : '5xy',   # value is string
        'c' : '10xy',
        'd' : '1xy',
        'e' : 10,
        }

file2.py

    import file1
    import json
    print file1.dict1['a']    #this works fine
    print file1.dict1['b']
    # Now I want to update the value of a & b, something like this:
    dict2 = json.loads(data)
    file1.dict1['a'] = dict2.['some_int']     #int value
    file1.dict1['b'] = dict2.['some_str']     #string value

我使用dictionary而不是文本文件的主要原因是,要更新的新值来自json数据,将其转换为dictionary更简单,每次我想更新dict1时都不用进行字符串解析。

问题是,当我从dict2更新值时,我希望将这些值写入文件1中的dict1

此外,该代码在Raspberry Pi上运行,我使用Ubuntu机器对其进行了SSH访问。

有人能帮我怎么做吗?

编辑:

  1. file1.py可以保存为任何其他格式,如.json或.txt。我只是假设将数据作为字典保存在单独的文件中可以轻松更新
  2. file1.py必须是一个单独的文件,它是一个配置文件,所以我不想将它合并到我的主文件中
  3. 上面提到的dict2数据来自

dict2 = json.loads(data)

  1. 我想用来自套接字连接的数据更新*file1**

如果您正试图将字典打印回文件,您可以使用类似。。。

outFile = open("file1.py","w")
outFile.writeline("dict1 = " % (str(dict2)))
outFile.close()

您最好有一个json文件,然后从中加载对象并将对象值写回文件。您可以让他们在内存中操作json对象,并简单地序列化它。

Z

我认为您希望将file1中的数据保存到一个单独的.json文件中,然后读取第二个文件中的.json文件。以下是您可以做的:

文件1.py

import json
dict1 = {
        'a' : 1,      # value is integer
        'b' : '5xy',   # value is string
        'c' : '10xy',
        'd' : '1xy',
        'e' : 10,
        }
with open("filepath.json", "w+") as f:
    json.dump(dict1, f)

这将把字典dict1转储到存储在filepath.jsonjson文件中。

然后,在您的第二个文件中:

文件2.py

import json
with open("pathname.json") as f:
    dict1 = json.load(f)
# dict1 = {
        'a' : 1,      # value is integer
        'b' : '5xy',   # value is string
        'c' : '10xy',
        'd' : '1xy',
        'e' : 10,
        }
dict1['a'] = dict2['some_int']     #int value
dict1['b'] = dict2['some_str']     #string value

注意:这不会更改第一个文件中的值。但是,如果需要访问更改后的值,可以将数据dump加载到另一个json文件中,然后在需要数据时再次加载该json文件。

您应该使用pickle库来保存和加载字典https://wiki.python.org/moin/UsingPickle

以下是泡菜的基本用法

   1 # Save a dictionary into a pickle file.
   2 import pickle
   3 
   4 favorite_color = { "lion": "yellow", "kitty": "red" }
   5 
   6 pickle.dump( favorite_color, open( "save.p", "wb" ) )

   1 # Load the dictionary back from the pickle file.
   2 import pickle
   3 
   4 favorite_color = pickle.load( open( "save.p", "rb" ) )
   5 # favorite_color is now { "lion": "yellow", "kitty": "red" }

最后,正如@Zaren所建议的,我在python文件中使用了json文件而不是dictionary。

以下是我所做的:

  1. file1.py修改为file1.json,并以适当的格式存储数据。

  2. file2.py中,我在需要时打开file1.json而不是import file1,并使用json.dump&file1.json上的json.load

相关内容

  • 没有找到相关文章

最新更新