我在python中有一个数据变量,我不知道访问元素 这是数据结构示例:
('deploy_with_config', [{'port': 80, 'name': 'test1', 'address': '0.0.0.0'}, {'port': 80, 'name': 'test2', 'address': '0.0.0.0'}])
此数据必须在文本文件中,每行都要输入
对于这个例子:
test1 0.0.0.0 80
test2 0.0.0.0 80
答案 0 :(得分:0)
您的数据结构是一个元组,由字符串和列表组成。该列表本身包含字典,每个字典都有3个键值对。
你可以找到这样的信息:
>>> unknown_data = ('deploy_with_config', [{'port': 80, 'name': 'test1', 'address': '0.0.0.0'}, {'port': 80, 'name': 'test2', 'address': '0.0.0.0'}])
>>> type(unknown_data)
<class 'tuple'>
>>> type(unknown_data[0])
<class 'str'>
>>> type(unknown_data[1])
<class 'list'>
>>> type(unknown_data[1][0])
<class 'dict'>
要获得您建议的输出格式,您可以执行以下操作:
for item in unknown_data[1]:
print('{0[name]} {0[address]} {0[port]}'.format(item))
答案 1 :(得分:0)
所以你有一个可以索引的元组(一个不可变列表)。你想要元组中的第二项,所以你调用[1]。这是一个字典列表,每个字典由花括号{}分隔。要调用字典中的项目,请使用方括号并调用字典键(&#39;:&#39;左侧的单词)。这为您提供了相应的值,&#34; test1&#34;等。
如果您不清楚代码的确切工作方式,请浏览每个阶段并循环遍历元组的第一个项目,然后遍历字典并使用调用语法。
a = ('deploy_with_config', [{'port': 80, 'name': 'test1', 'address': '0.0.0.0'}, {'port': 80, 'name': 'test2', 'address': '0.0.0.0'}])
for some_dict in a[1]:
print(some_dict["name"], some_dict["address"], some_dict["port"])
答案 2 :(得分:0)
假设数据是一个元组
data = ('deploy_with_config', [{'port': 80, 'name': 'test1', 'address': '0.0.0.0'}, {'port': 80, 'name': 'test2', 'address': '0.0.0.0'}])
params = data[1]
params = [" ".join([item['name'], item['address'], str(item['port'])]) for item in params]
with open('data.txt') as fw:
fw.writelines(params)