我有2个python文件,file1.py只有1个字典,我想阅读&从file2.py写入该字典。两个文件都在同一目录中。
我可以使用导入文件1 从中读取,但如何写入该文件。
段:
file1.py(除了以下数据外,在file1中没有其他内容)
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
我使用字典而不是文本文件的主要原因是因为要更新的新值来自json数据并将其转换为字典更简单,每次我想要更新时都可以避免字符串解析的 dict1
问题是,当我从dict2更新值时,我希望将这些值写入file1中的dict1
此外,代码在Raspberry Pi上运行,我使用Ubuntu机器将其SSH连接到它。
有人可以帮我解决一下这个问题吗?
修改
dict2 = json.loads(data)
答案 0 :(得分:1)
如果您尝试将字典打印回文件,则可以使用类似......
的内容outFile = open("file1.py","w")
outFile.writeline("dict1 = " % (str(dict2)))
outFile.close()
最好使用json文件,然后从中加载对象并将对象值写回文件。你可以在内存中操作json对象,并简单地序列化它。
ž
答案 1 :(得分:0)
您应该使用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" }
答案 2 :(得分:0)
我认为您希望将file1
中的数据保存到单独的.json
文件中,然后阅读第二个文件中的.json
文件。您可以这样做:
<强> file1.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
转储到json
文件中,该文件存储在filepath.json
。
然后,在你的第二个档案中:
<强> file2.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
文件。
答案 3 :(得分:0)
最后,正如@Zaren建议的那样,我在python文件中使用了json文件而不是字典。
这就是我的所作所为:
将 file1.py 修改为 file1.json ,并以适当的格式存储数据。
从 file2.py ,我在需要时打开了 file1.json ,而不是import file1
并使用了json.dump
&amp; file1.json
json.load
醇>