如何在python中将元组转换为字符串/如何在网页上编辑关联数组



我真正想要解决的问题:

我有一个真/假值的方表,用字符串标记行和列。

我想将其显示为带有复选框的html表单,允许用户勾选和取消勾选元素,然后提交表单,然后我想从表单中重建数组。

我正在尝试解决的子问题:

我有两个字符串的元组,("foo", "bar")

我想把它变成网页中一个复选框的名字

然后当表单提交时,将该字符串转换回原始元组

此刻我正在做,("%s$%s"%("foo","bar"))->"foo$bar",然后string.split('$')来获得字符串,这工作得很好,但它是hackish的,如果字符串中有美元就会中断。

显然我不能只使用repr和eval!

有一个统一的,标准的方法来做这件事吗?

如果不记住服务器上的状态,就不可能出现第二个问题。客户端必须并且应该始终被视为不安全的没有相同的方法来获得与您发送的相同的字符串。用户总是可以通过某种方式入侵。

除非你想用加密的方式来做这个,我真的很怀疑:)

然而,如果你不担心脚本漏洞破坏你的应用程序,有成千上万的方法,例如你所做的,但也在一个隐藏字段中保存第一个字符串的长度,这将字符串的其余部分留给第二个字符串。或者将字符串保存在两个不同的字段中,等等。

为什么不只是嵌套结构呢?既然需要一个值和描述的矩阵,为什么不像这样嵌套它们呢:

matrix = [
     [{'value': False, 'string':'str1'}, {'value': False, 'string':'str2'}],
     [{'value': False, 'string':'str1'}, {'value': False, 'string':'str2'}],
     ]

现在matrix[0][0]代表一个字典,键为stringvalue。没有太多的麻烦,你可以把它转换成一个html表格。

现在,您还可以(假设您不需要修改)使用嵌套元组。

困难的部分是重建。您需要小心地形成name标记;我建议从你使用的索引来导航矩阵,像这样:

print "<table>"
for i in range(0, 2):
    print "<tr>"
    for j in range(0, 2):
        print "<td>"
        item = '<input name="matrix-%d-%d" value=%s>%s<br/>' % (i,j,
                 str(matrix[i][j]["value"]), matrix[i][j]["string"])
        print item
        print "</td">
    print "</tr>"
print "</table>"

剩下的任务是根据post值重新创建所述列表,这基本上是分割字符串的情况,计算边界是否合理(预期?)并填充字典值。

看起来json是通常的方式,它是python内置的

进口json

json.dumps(("嗨","有"))"("嗨","有")的

json。负载("("嗨","有")")[u 'hi ' u 'there ']

json.loads (json.dumps(("嗨","th 'ere","e $ re)))[u'hi', u'th 'ere ', u'the 'e $re']

最新更新