python list substring

时间:2011-08-31 19:52:59

标签: python list substring

我正在尝试从newreg.py中读取变量(例如州,区,dcode等,这是一个长列表,然后从Web表单中获取数据)到insertNew.py。

我目前已将整个文件读入名为“lines”的列表中。现在,我如何过滤每个变量(比如州,区等大约50-55个变量。这个'列表'也有html代码,因为我已经读过整个网页了)从列表'行'?

有没有更好更有效的方法呢?

一旦我能够读取每个变量,我需要连接这些值(转换为字符串)并插入到MongoDB中。

最后,当数据插入数据库时​​,会打开“home.py”页面。

我正在提供详细信息,以便为可以给出的某些解决方案提供完整的图片。我希望我能够保持简单和完整。

我想循环遍历列表(下面的示例)并过滤掉变量(在'='符号值之前)。以下是'newreg.py':

state = form.getvalue('state','ERROR')
district = form.getvalue('district','ERROR')
dcode = form.getvalue('Dcode','ERROR')

我将文件/页面读入列表

 fp = open('/home/dev/wsgi-scripts/newreg.py','r')
 lines = fp.readlines()

这样我就可以创建要插入MongoDB.eg的字典。

info = {'state':state,'district':district ,. 。 。 。 } {key:value} [value表示---这是上面列表中的变量]

由于

但是当我这样做时,我会收到以下错误

print getattr(newreg, 'state')

错误是

>>> print getattr(newreg, 'state')
Traceback (most recent call last):
  File "<stdin>", line 1, in module
AttributeError: 'module' object has no attribute 'state'

我也试过

>>> print newreg.state
Traceback (most recent call last):
  File "<stdin>", line 1, in module 
AttributeError: 'module' object has no attribute 'state'

这是我添加模块的方式

>>> import os,sys
>>> sys.path.append('/home/dev/wsgi-scripts/')
>>> import newreg
>>> newreg_vars = dir(newreg)
>>> print newreg_vars
['Connection', 'Handler', '__builtins__', '__doc__', '__file__', '__name__',  
 '__package__', 'application', 'cgi', 'datetime', 'os', 'sys', 'time']

上面列表中的处理程序是以下

中的一个类
#!/usr/bin/env python

import os, sys
import cgi
from pymongo import Connection
import datetime
import time

class Handler:
     def do(self, environ, start_response):
     form = cgi.FieldStorage(fp=environ['wsgi.input'],
                             environ=environ)

     state = form.getvalue('state','<font color="#FF0000">ERROR</font>')
     district = form.getvalue('district','<font color="#FF0000">ERROR</font>')
         dcode = form.getvalue('Dcode','<font color="#FF0000">ERROR</font>')

1 个答案:

答案 0 :(得分:1)

我假设你想在运行时将变量从一个Python模块复制到另一个模块。

import newreg
newreg_vars = dir(newreg)
print newreg_vars

将打印模块“newreg”的所有属性。

从模块中读取变量:

print getattr(newreg, 'state')
print getattr(newreg, 'district')
print getattr(newreg, 'dcode')

或者如果您知道属性的名称:

print newreg.state
print newreg.district
print newreg.dcode

要将属性更改为字符串,请使用列表推导(或生成器):

newreg_strings = [str(item) for item in newreg_vars]

这将为您节省大量精力,因为您不必将“newreg”解析为re的文本文件。

作为旁注:类型转换不是连接(尽管连接可能涉及某些其他编程语言中的类型转换)。