有没有办法在文本周围插入大括号以使其成为字符串格式的字典?

Is there a way to insert curly braces around text to make it a dictionary in string format?

提问人:always-confused 提问时间:4/22/2019 更新时间:4/22/2019 访问量:789

问:

在我的 python 程序中,我有一个添加到文本文件中的键和值列表,我需要能够提取此字符串列表并将其转换为字典。

例如:

    counter = 0
    add = str(counter)
    counterDict = UserID + ": " + add + ", "
    counter = counter + 1

#This should make counterDict look like: ""Smi39119": 0, "Joh38719": 1, " etc.

    f = open("Dictionaries.txt","a")
    f.write(counterDict)
    f.close()

#Then I would like to be able to open the file and turn that string into a dictionary

    f = open("Dictionaries.txt","r")
    string = f.read()

#This way 'string' should still be a string, but look like this: "{"Smi39119": 0, "Joh38719": 1, }"

我不知道这是否可行,但如果可行,将不胜感激所有解决方案。

python-3.x 字典 文本

评论

0赞 chepner 4/22/2019
模块?json
2赞 CristiFati 4/22/2019
docs.python.org/3/library/json.html 正是您所需要的。

答:

0赞 P.hunter 4/22/2019 #1

我猜您正在尝试将字典保存到文件中,* 输入 *: json 文件系统, 你不需要将字典转换为字符串,让 JSON 为你做,将其转储到字符串中。

import json

f = open("Dictionaries.json","a")
f.write(json.dumps(your_dictionary))
f.close()

# load it and use it like a dictionary

f = open("Dictionaries.json","r")
your_dictionary = json.loads(f.read())

另请阅读 将字典写入 txt 文件并读回?

干杯!

评论

1赞 Nathan Vērzemnieks 4/22/2019
在这里使用并直接写入和读取文件会更有意义。json.dumpjson.load
0赞 P.hunter 4/22/2019
我猜,python 3 中的差异非常明显?stackoverflow.com/questions/36059194/......
1赞 Nathan Vērzemnieks 4/22/2019
正如它在答案中所说的那样,“如果你想将JSON转储到文件/套接字或其他任何东西中,那么你应该去如果你只需要它作为一个字符串,那么使用。同样,当你可以做的时候,做是没有意义的。dump()dumps()json.loads(f.read())lson.load(f)