如何使用嵌入式curley brachets在Python中创建多行dict值?

时间:2015-10-17 19:51:10

标签: python regex dictionary escaping

我遇到的情况是我正在构建一个包含来自一堆网页样式部分的字符串的python dict。我们的想法是能够从关联数组(字典)的键中设置页面的样式。作为CSS指令一部分的括号不会传递Python解析器,即使它们加倍并且在带引号的字符串中。

开启和关闭括号加倍。似乎问题在于布局 串。 Python看到EOL并在它应该继续吃字符串之前引发语法错误 下一个报价。我尝试将双引号改为单引号,没有机会。

 File "styles.py", line 2
    "<style> body {{ margin: 5%; background: lightyellow; }}
                                                       ^
 SyntaxError: EOL while scanning string literal

dict的第一个元素是:这是Python 3.4

$ head -15 styles.py
styles = { "lightyellow":
    "<style> body {{ margin: 5%; background: lightyellow; }}
    #nav {{list-style: none;}}
    #nav li{{
       display:inline;
    }}
    #nav a{{
        display:inline-block;
        padding:10px;
        color: #000;
    }}
</style>",
....

有什么建议吗?我应该将所有行连接在一起并用UNIX转义替换空格, 标签和换行符?

1 个答案:

答案 0 :(得分:1)

谢谢。我已经确认三重引用多行值确实有效。请注意 项目以相反的顺序出现。

$ python3 paras.py

dict_keys(['item2','item1']) dict_values(['\ n这是另一个项目\有一个多行值\ n在python dict。\ n','“\ n这是第一行\ n这是第2行\ n \ n这是第三行\ n的多行值\ n']) Bruces-MacBook-Pro:~brocesalem $ cat paras.py

paras = {'item1':“”“”

这是第一行

这是第2行

这是第三行

的多线值

“””, 'ITEM2': “”“

这是另一项

具有多线值

在python dict中。 “”“}

打印(paras.keys())

打印(paras.values())