Python 如何使用MySQL存储HTTP POST的多个参数?
HTTP Post可能有多个参数,例如: (而params=({'country':'US'},{'city':'NYC'}) 我正在用Python开发一个web spider,我面临一个问题,如何用不同的参数跟踪相同url的差异。现在我可以加载内容,但我不知道如何将post参数存储在SQLite3表的一个字段中。对于系统开发人员来说,将参数存储在MySQL这样的数据库中很容易,但是由于参数不同不同的站点是多种多样的。我更喜欢将post参数存储在单个字段中,而不是将一对一的关系映射存储在表中 HTTP获取 >>> import urllib >>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) >>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query?%s" % params) >>> print f.read() >>>导入URL库 >>>params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0}) >>>f=urllib.urlopen(“http://www.musi-cal.com/cgi-bin/query?%s%s) >>>打印f.read() HTTP POST >>> import urllib >>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) >>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params) >>> print f.read() >>>导入URL库 >>>params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0}) >>>f=urllib.urlopen(“http://www.musi-cal.com/cgi-bin/query“,参数) >>>打印f.read() 我的项目配置:Python 如何使用MySQL存储HTTP POST的多个参数?,python,post,sqlite,Python,Post,Sqlite,HTTP Post可能有多个参数,例如: (而params=({'country':'US'},{'city':'NYC'}) 我正在用Python开发一个web spider,我面临一个问题,如何用不同的参数跟踪相同url的差异。现在我可以加载内容,但我不知道如何将post参数存储在SQLite3表的一个字段中。对于系统开发人员来说,将参数存储在MySQL这样的数据库中很容易,但是由于参数不同不同的站点是多种多样的。我更喜欢将post参数存储在单个字段中,而不是将一对一的关系映射存储在表中 H
- Python+SQLite3
- 存储http url和post参数并跟踪更改
- post参数包含多个键值对
- 存储的参数应解码回参数
- 应涵盖编码问题
对不起,我只是Python的新手。您可以像这样轻松地转换json:
>>> import json
>>> json.dumps({'spam': 1, 'eggs': 2, 'bacon': 0})
'{"eggs": 2, "bacon": 0, "spam": 1}'
>>> json.loads('{"eggs": 2, "bacon": 0, "spam": 1}')
{u'eggs': 2, u'bacon': 0, u'spam': 1}
>>> json.dumps((1,2,3,4))
'[1, 2, 3, 4]'
>>> json.loads('[1, 2, 3, 4]')
[1, 2, 3, 4]
>>>
更好地使用它,因为它比自制和分离编码更通用,它支持任何嵌套复杂性。您可以像这样轻松地转换json:
>>> import json
>>> json.dumps({'spam': 1, 'eggs': 2, 'bacon': 0})
'{"eggs": 2, "bacon": 0, "spam": 1}'
>>> json.loads('{"eggs": 2, "bacon": 0, "spam": 1}')
{u'eggs': 2, u'bacon': 0, u'spam': 1}
>>> json.dumps((1,2,3,4))
'[1, 2, 3, 4]'
>>> json.loads('[1, 2, 3, 4]')
[1, 2, 3, 4]
>>>
更好地使用它,因为它比自制和分离编码更通用,它支持任何嵌套复杂性。我可能会同意Frost的建议-JSON编码更健壮。但是,在过去的一些情况下,我被迫采用更简单的方法:
>>> d = {'spam': 1, 'eggs': 2, 'bacon': 0}
>>> l = [(a +":"+str(b)) for a,b in d.items()]
>>> ','.join(l)
'eggs:2,bacon:0,spam:1'
显然,您的分隔符(
,
和:
在本例中)需要仔细选择,但这在紧要关头起作用。我可能会同意弗罗斯特的建议-JSON编码更为稳健。然而,在过去的一些情况下,我被迫采用更简单的方法:
>>> d = {'spam': 1, 'eggs': 2, 'bacon': 0}
>>> l = [(a +":"+str(b)) for a,b in d.items()]
>>> ','.join(l)
'eggs:2,bacon:0,spam:1'
很明显,您的分隔符(
,
和:
在本例中)需要仔细选择,但这非常有用。感谢您的所有响应。我选择JSON作为SQLite3中的对象存储。我还将尝试使用urllib.quote对特殊字符串进行编码,以避免编码问题。感谢您的所有响应。我选择JSON作为SQLite3中的对象存储。我还将尝试使用urllib.quote对特殊字符串进行编码l字符串以避免编码问题。