【发布时间】:2019-07-05 09:38:25
【问题描述】:
我找不到直接解决我的问题的方法(可能是一个非常简单的方法,但仍然...),无论是在这里还是在互联网上。
我创建了一个字典并使用csv.DictWriter将其保存在一个CSV文件中
# Starting dict
d= {'key1':'value1', 'key2':'value2'}
# Writing down the dict and saving
with open('mycsvDict.csv', 'w') as f:
w= csv.DictWriter(f, d.keys())
w.writeheader()
w.writerow(d)
现在我的字典在 CSV 文件中,我正在将其读回字典并尝试使用用户输入对其进行修改。
# Ask user for new key, value
data_to_append= {}
user_key= input("Write new key: ")
user_val= float(input("Insert new value: "))
data_to_append[user_key]= user_val
#trying to append in the file
with open('mycsvDict.csv', 'a') as app_f:
from csv import writer
w= csv.DictWriter(app_f, data_to_append.keys())
w.writerow(data_to_append)
print(data_to_append)
我从正确打印的用户 (ofc) 那里获得了带有新键和值的新字典,但我的 CSV 文件没有被修改。 我无法保存新的更新版本。 我做错了什么?
【问题讨论】:
-
有没有弹出错误?
-
不,没有错误。但是代码没有执行我想做的事情。它不会在原始文件中附加新项目(带值)。
-
我试过了,它奏效了。这是您的代码的准确表示吗?另请发布预期输出。
-
也就是说,我认为这不是您想要的。字典编写器将键打印为标题,将值打印为行。如果您正在获取键的用户输入,无论键是什么,该行都将按照定义的字典顺序写入。这意味着它不会将键与原始列匹配。这真的是您想要填充 CSV 文件的方式吗?
-
哦,太好了。我的意思是,我在这里写信也是为了获得新知识。那么,您建议我执行哪些步骤?我希望新的键值被添加到字典中
标签: python-3.x csv dictionary