我如何针对文件中的一个占位符编写字典键和值
How can i write dictionary keys and values against one placeholder in a file
我正在尝试验证 json 文件,验证后我想将结果写入新文件。
为此,我在 python 中使用 json 模块。我有一个名为 schema 的字典对象,它包含所有键和值。如果我打印它,我会得到如下所示的结果
{'deviceId': 'String', 'userId': 'String', 'regTime': 'Number', 'timestamp': 'String', 'cardiac': 'Number', 'gyro': 'array', 'acc': 'array'}
我想根据占位符@schema_result 将整个模式结果写入文件。这样它看起来像下面
deviceId String
userId String
regTime Number
timestamp String
cardiac Number
gyro array
acc array
目前我正在这样写这个模式对象
def filing(schema, file_name): #a function that takes schema dictionary and name of file where to write
config = open(file_name, 'w')
for line in open('schema.json', 'r'):
for key,value in schema.items():
print(key+" "+value+"\n")
line = line.replace('@schema_result', str(key+" "+value+"\n"))
config.write(line)
这只会导致将第一个键和值替换为@schema_result。由于模式对象是字典,我无法添加下一个项目,因为在第一次迭代后它将用第一个键和值替换 @schema_result 并且下一次它找不到 @schema_result 因为它已经被替换.
当前结果如下
deviceId String #against @schema_placeholder in first iteration
如何在文件中针对一个占位符写入所有键和值
有两个文件
schema.json
是包含占位符@schema_result 的文件
- 这个
@schema_result
被新文件中的输出替换,该文件是 file_name
变量
不是使用 for
循环从 schema
字典中读取每个项目,您可以使用列表理解和 join
将整个字典键值连接在一起,然后写入它到一个文件,
schema = {'deviceId': 'String', 'userId': 'String', 'regTime': 'Number', 'timestamp': 'String', 'cardiac': 'Number', 'gyro': 'array', 'acc': 'array'}
formatted_schema = ["{} {}\n".format(k,v) for k,v in schema.items()]
formatted_schema = ''.join(formatted_schema)
# output,
deviceId String
userId String
regTime Number
timestamp String
cardiac Number
gyro array
acc array
现在您只需将 formatted_schema
写入文件,将其替换为 @schema_result
我正在尝试验证 json 文件,验证后我想将结果写入新文件。 为此,我在 python 中使用 json 模块。我有一个名为 schema 的字典对象,它包含所有键和值。如果我打印它,我会得到如下所示的结果
{'deviceId': 'String', 'userId': 'String', 'regTime': 'Number', 'timestamp': 'String', 'cardiac': 'Number', 'gyro': 'array', 'acc': 'array'}
我想根据占位符@schema_result 将整个模式结果写入文件。这样它看起来像下面
deviceId String
userId String
regTime Number
timestamp String
cardiac Number
gyro array
acc array
目前我正在这样写这个模式对象
def filing(schema, file_name): #a function that takes schema dictionary and name of file where to write
config = open(file_name, 'w')
for line in open('schema.json', 'r'):
for key,value in schema.items():
print(key+" "+value+"\n")
line = line.replace('@schema_result', str(key+" "+value+"\n"))
config.write(line)
这只会导致将第一个键和值替换为@schema_result。由于模式对象是字典,我无法添加下一个项目,因为在第一次迭代后它将用第一个键和值替换 @schema_result 并且下一次它找不到 @schema_result 因为它已经被替换.
当前结果如下
deviceId String #against @schema_placeholder in first iteration
如何在文件中针对一个占位符写入所有键和值
有两个文件
schema.json
是包含占位符@schema_result 的文件
- 这个
@schema_result
被新文件中的输出替换,该文件是file_name
变量
不是使用 for
循环从 schema
字典中读取每个项目,您可以使用列表理解和 join
将整个字典键值连接在一起,然后写入它到一个文件,
schema = {'deviceId': 'String', 'userId': 'String', 'regTime': 'Number', 'timestamp': 'String', 'cardiac': 'Number', 'gyro': 'array', 'acc': 'array'}
formatted_schema = ["{} {}\n".format(k,v) for k,v in schema.items()]
formatted_schema = ''.join(formatted_schema)
# output,
deviceId String
userId String
regTime Number
timestamp String
cardiac Number
gyro array
acc array
现在您只需将 formatted_schema
写入文件,将其替换为 @schema_result