将列表值解压缩到文本

时间:2017-06-29 12:24:29

标签: python

我是一个列表,我想要解压缩到部分文本。 目标是最终将文本导出到txt文件,然后使用VPN将其实现到我们的数据库。

案文如下:

'"name": "----"',

'"lei": " "',

'"parentId": "0"',

'"status": "ACTIVE"',

'"type": "1"',

'"country": "----"',

'"region": "1"',

'"address": "----"',

'"domains": "None"'

它从我变成列表的DataFrame开始,所以基本上每个列表中的每个值都与其他列表中具有相同索引的相同值相关联。

目标是拥有318个文本,就像我写的那样,每个文本都有3个值。

列表为 - "Name""Country""Address"

我想过使用带有for循环的map但是我不太确定如何实现这一点。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

format_string = """
'"name": "{}"',
'"lei": " "',
'"parentId": "0"',
'"status": "ACTIVE"',
'"type": "1"',
'"country": "{}"',
'"region": "1"',
'"address": "{}"',
'"domains": "None"'
"""

for data in zip(Name, Country, Address):
    print(format_string.format(*data))

这是你想要的吗?

答案 1 :(得分:1)

我认为你可以使用python的字符串格式来实现你想要做的事情,并且,正如你的建议,使用map来对你的所有文件执行任务。

这个想法是写一个通用文本,就像你提出的那样,用“{0}”,“{1}”,“{2}”字段替换“----”字段。然后,应用text.format(name, country, adress)将按顺序使用namecountryadress字段的内容填充字段。

要映射它,您还需要使用splat运算符(*)解包包含参数的元组:text.format(*tuple_of_arguments)

因此,可接受的解决方案是使用以下形式的代码:

list_of_tuples = [
        ('nameA', 'countryA', 'adressA'),
        ('nameB', 'countryB', 'adressB')
    ] # fill this, and maybe use a generator instead (e.g. using zip)
for e in map(lambda x : text.format(*x), list_of_tuples):
    # do what you want of the formatted text stored in e

我希望这有帮助!