所以我正在写一个程序(一个我自己的娱乐程序,通常都是这样)。仍然没有我想做的那么好*长话短说无论如何,我第一次尝试使用外部配置文件,而不是让变量散落在整个源代码中(Python,所以不难修改,只需要你的好朋友Ctrl+F)。
我主要研究JSON,但对象有多个值(所以我不能只使用键:值对)我需要为每个条目写字段名,这很烦人。一些演示数据(即不是配置文件):
{
"people": [
{"first": "John", "second": "Smith", "age": 34},
{"first": "Jane", "second": "Doe", "age": 40},
{"first": "Fred", "second": "Blogs", "age": 56}
]
}
当我添加更多的人时,这真的很烦人。我知道这是为了可读性,但它增加了我的工作量。
我们还看了YAML,但基本问题仍然相同:
---
people:
- first: John
second: Smith
age: 34
- first: Jane
second: Doe
age: 40
- first: Fred
second: Blogs
age: 56
我能想到的最简单的解决方案就是把值放在一个没有名字的数组中,然后在程序中通过迭代数组来赋值,但这违背了可读性的目的。(注意:只是我脑海中的代码,所以希望它是正确的代码)
- 人们.杰森:*
{
"people": [
["John", "Smith", 34],
["Jane", "Doe", 40],
["Fred", "Blogs", 56]
]
}
- 人民。py:*
import json
class person:
def __init__(self, first, second, age):
self.first = first
self.second = second
self.age = age
people_file = open("people.json", "r")
people_data = json.load(people_file)
all_people = list()
for each_person in people_data["people"]:
new_person = person(each_person[0], each_person[1], each_person[2])
all_people.append(new_person)
我认为GFM处理表格的方式会很好,但是我不知道有什么语言支持它(我知道如果我把它排列起来会更漂亮)。
|first|second|age|
|-----|------|---|
|John|Smith|34|
|Jane|Doe|40|
|Fred|Blogs|56|
嗯......我希望人们能提出一个问题。我是不是漏掉了什么,一门语言(或者是编辑器或其他什么的),我不需要重复自己这么多?我知道“容易”可能是一个CSV文件(虽然我可能会遇到必须转义几个特殊字符的冲突,正如我在开头段落中3英里以上所说,这是一个配置文件,但人是一个更容易的例子),但这违背了把我所有的设置都放在一个地方的目的。
1条答案
按热度按时间unhi4e5o1#
YAML与JSON不同,它有注解,所以这样就可以了: