我和json有一些奇怪的问题。以下程序打开文件,导入字典,添加条目,并再次保存字典。当程序第二次运行时,一封信" u"已添加到字典的每个键和每个值的前面。这些不是累积的;多次运行程序不会添加多个" u" s。
import json
file1 = open('phonebook.txt', 'r+')
phonebook = json.load(file1)
print phonebook
while(True):
name = raw_input("Name?")
if name == "":
break
number = raw_input("Number?")
phonebook[name] = number
file1.close()
file1 = open('phonebook.txt', 'w')
json.dump(phonebook, file1)
print phonebook
顺便提一下,一个不相关的特性:除非我在写入模式下关闭并重新打开文件,否则我会收到错误消息。我不知道为什么会这样。
答案 0 :(得分:2)
你代表unicode" string"。有关更详细的答案,请查看此处 What does the 'u' symbol mean in front of string values?
答案 1 :(得分:0)
好的 - 谢谢。这似乎有效:
import json
file1 = open('phonebook.txt', 'r')
phonebook = eval(file1.read())
while(True):
name = raw_input("Name?")
if name == "":
break
number = raw_input("Number?")
phonebook[name] = number
file1.close()
file1 = open('phonebook.txt', 'w')
file1.write(json.dumps(phonebook))
file1.close()