我有一个数据变量在Python中,我不知道访问元素。
这里是数据结构示例:访问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
我有一个数据变量在Python中,我不知道访问元素。
这里是数据结构示例:访问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
所以,你有一个元组(不可变列表),你可以索引到。你想要元组中的第二项,所以你可以调用[1]。这是一个词典列表,每个词都由大括号{}分开。要调用字典中的项目,请使用方括号并调用字典键(':'左侧的单词)。这会给你相应的值“test1”等。
如果你不清楚代码是如何工作的,请遍历每个阶段并遍历元组的第一个元素,然后通过字典循环播放调用语法。
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"])
使用'dict'这样的保留名称作为变量名是不鼓励的,因为这里它影响了整个['dict'](https://docs.python.org/3.6/library/) stdtypes.html#dict)类。 –
没有注意到,但你是对的 – TLOwater
你的数据结构是一个元组,由一个串和一个列表的。该列表本身包含字典,每个字典都有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))
假设数据是一个元组
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)
你尝试过这么远吗? – FLab
问题还不清楚...详细说明 –