我有一个这样的文件:
machineA=1.2.3.4.5
machineB=2.5.7.8.9
我需要阅读上面的文件并为每一行创建一个这样的字符串:
{"test":"hello world.","server":"machineA","ip":"1.2.3.4.5","reason":"data"}
{"test":"hello world.","server":"machineB","ip":"2.5.7.8.9","reason":"data"}
正如您在上面的json字符串中所看到的,只有server
和ip
的值正在发生变化而其他剩余的两个键,它的值始终保持不变。如何为每一行生成这样的字符串?
我无法弄清楚如何为每一行制作对应的json并在控制台上打印出来。
f = open('hosts.txt')
line = f.readline()
while line:
print(line)
machine=line.split("=")[0]
ip=line.split("=")[1]
# now how to make a json string for each line
line = f.readline()
f.close()
答案 0 :(得分:3)
我建议创建一个字典,然后使用内置的json
模块将其转换为JSON字符串,因为我发现它更清晰。
import json
mydict = {
"test": "hello world.",
"server": machine,
"ip": ip,
"reason": "data"
}
json.dumps(mydict)
如果没有json
模块
答案 1 :(得分:1)
您没有 使用JSON库只是因为输出格式是JSON。尝试其中之一:
output_line = '{"test":"hello world.","server":"%s","ip":"%s","reason":"data"}'%(
machine, ip)
output_line = '{{"test":"hello world.","server":"{}","ip":"{}","reason":"data"}'.format(
machine, ip)
output_line = f'{{"test":"hello world.","server":"{machine}","ip":"{ip}","reason":"data"}'
请注意,最后一行仅适用于Python3的最新版本。