如何在文件中存储名称值对

如何在文件中存储名称值对

问题描述:

我有大量的名称值对,我需要在程序中使用。在文件中存储名称值对的最好方法是什么,以便我可以在我的python程序中轻松地解析它们。由于某些原因,我们不使用xml。请建议任何好方法将它们存储在一个文件中并使用它们。如何在文件中存储名称值对

P.S - 在文件中写入名称值对的人不一定是开发人员。他们会被告知写出某些值,然后他们会输入。所以我想尽可能保持简单。

+2

可能你可以使用[pickle](http://docs.python.org/2/library/pickle.html)模块。 – user2155932 2013-03-18 06:36:56

+0

关于PS,是的,我明白。无论如何,我们需要培训他们写对吗?那么它不应该是一个困难的任务。恕我直言。 :) – Babu 2013-03-18 06:51:18

您可以在Python中使用JSON(推荐) :

import json 

http://docs.python.org/2/library/json.html

或CVS

enter http://docs.python.org/2/library/csv.html

+0

我有csv的想法。我计划像这样name1,value1,name2,value2,name3,value3,......如果你觉得你可以添加更多的结构,欢迎你。 Json是一个不错的选择,但csv可以通过任何人通过excel写入。 – Abhishek 2013-03-18 06:46:21

你可以将它保存为一个python dict.py文件本身只需在脚本中导入。如果您只是在运行时才了解文件名,请使用__import__导入。 Ref here。通过这种方式,你不需要做任何解析或转换。

+1

来详细说明这一点,请考虑http://docs.python.org/2/library/functions.html#execfile在这里讨论:http://stackoverflow.com/a/1027739/582906但请记住python3兼容性:http://stackoverflow.com/questions/6357361/alternative-to-execfile-in-python-3-2 – furins 2013-03-18 06:46:39

a.csv
NAME1,VALUE1
NAME2,值2

import csv 
[i for i in csv.reader(open('a.csv').read().splitlines())] 

[[ 'NAME1', 'VALUE1'],[ 'NAME2', '值2']]