小编Sim*_*ser的帖子

Haskell 通过浏览器获取 URL

我想在 Haskell 中进行一些屏幕抓取(来自 Netflix),但该站点需要 cookie 登录状态,因此大多数示例使用浏览器自动化要求登录浏览器执行实际的 URL 获取,然后抓取从那个文本。

我想要(在 Ruby 中)的一个很好的例子是:https : //gist.github.com/1425290

有没有什么简单的方法可以从 Haskell 做等效的事情?

haskell screen-scraping web-scraping

5
推荐指数
1
解决办法
573
查看次数

Pydev autogen DJANGO_SETTINGS_MODULE环境变量?

我正在使用Eclipse 3.7.2和Pydev 2.6来开发Django程序.当我将Django从1.3升级到1.4.1时,我发现了一个关于"DJANGO_SETTINGS_MODULE"环境变量的问题.当我在控制台中运行manage.py时,"DJANGO_SETTINGS_MODULE"首先是None,并且是via

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test.settings")
Run Code Online (Sandbox Code Playgroud)

将正确获得价值.

但是当我在PyDev中运行代码时,在程序之前将环境设置为"folder_name.settings".即使在非Django程序中.我找不到任何改变价值的方法.

如何在程序外设置值?

谢谢.

python eclipse django pydev django-settings

5
推荐指数
1
解决办法
1392
查看次数

Python中的递归Postorder遍历列表?

大家好 - 我是一个编程新手,并在这里有以下非常简单的代码:

def postorder(T):
    if T != None:
        postorder(T.left)
        postorder(T.right)
        print T.data,
Run Code Online (Sandbox Code Playgroud)

所有我想要的不是打印遍历我想让函数将信息存储在数组或类似的东西中,以便我可以将该信息用于其他事物

python tree list tree-traversal

5
推荐指数
1
解决办法
8522
查看次数

递归函数来计算总和?

这就是我所拥有的,但我不确定为什么它不起作用

def sum(n):
    if (n>0):
        print (n)
        return sum(n)+sum(n-1)
    else:
        print("done doodly")

number = int(input(":  "))
sum(number)
Run Code Online (Sandbox Code Playgroud)

例如如果使用输入5,我想编程来计算5+4+3+2+1的总和。我究竟做错了什么 ?

python recursion sum python-3.x

5
推荐指数
2
解决办法
4万
查看次数

性感无法处理unicode字符串?

我正在尝试使用丰富的来验证来自HTTP请求的JSON输入.但是,它似乎没有很好地处理unicode字符串.

from voluptuous import Schema, Required
from pprint import pprint

schema = Schema({
    Required('name'): str,
    Required('www'): str,
})

data = {
    'name': 'Foo',
    'www': u'http://www.foo.com',
}

pprint(data)
schema(data)
Run Code Online (Sandbox Code Playgroud)

上面的代码生成以下错误:

 voluptuous.MultipleInvalid: expected str for dictionary value @ data['www']
Run Code Online (Sandbox Code Playgroud)

但是,如果我u从URL中删除表示法,一切正常.这是一个错误还是我做错了?

PS.我正在使用python 2.7,如果它与它有任何关系.

python string unicode python-2.7 voluptuous

5
推荐指数
1
解决办法
1088
查看次数

在Python列表中迭代 - 它是复制还是使用迭代器?

我有这样的清单

a = [ [ 1,2,3 ], [ 4,5,6] ]
Run Code Online (Sandbox Code Playgroud)

如果我写

for x in a:
    do something with x
Run Code Online (Sandbox Code Playgroud)

是否将第一个列表a复制到x?或者python是否使用迭代器执行此操作而不进行任何额外的复制?

python iteration list name-binding

4
推荐指数
2
解决办法
2121
查看次数

对象列表,用分隔符获取属性

public class Person
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个清单:

List<Person> list = new List<Person>();
Run Code Online (Sandbox Code Playgroud)

我想用逗号分隔符获取列表中所有条目的Id值,如下所示:id1,id2,id3

c# list

4
推荐指数
1
解决办法
256
查看次数

django admin 静态服务地址错误

我有一个奇怪的问题 - 我的开发服务器试图通过使用错误的网址来提供管理静态服务。

使用 Django 1.6

我的主要 urlconf

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
   url(r'^admin/', include(admin.site.urls)),
   url(r'^$', include('dash.urls')),
   )


urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)

设置就像

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
locale = lambda path: os.path.join(BASE_DIR, path)
STATIC_URL = "static/"
MEDIA_URL = "media/"
STATIC_ROOT = locale("static")
MEDIA_ROOT = locale("media")
Run Code Online (Sandbox Code Playgroud)

应用

INSTALLED_APPS = (
  'django.contrib.staticfiles',
  'django.contrib.admin',
)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我的自定义应用程序通过像 localhost:8000/static/css/blah 这样的 url 通常提供静态服务

但管理员使用

[2013年11月24日18:47:41]“获取/admin/static/admin/css/base.css HTTP/1.1”404 4316

各位,说真的,前缀 /admin/static 的起源是什么?0_o 我不使用 ADMIN_MEDIA_PREFIX 等已弃用的内容。

基本管理模板使用 {% static "admin/css/base.css" %} 标签,其代码为

from django.conf import settings
from django.template …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-admin django-staticfiles

4
推荐指数
1
解决办法
3745
查看次数

Python将self改为继承类

我有这种结构:

class Foo:
    def __init__(self, val1):
        self.val1 = val1

    def changeToGoo(self)
        HOW???

class Goo(Foo):
    def __init__(self, val1, val2):
        super(val1)
        self.val2 = val2

a = Foo(1)
a.changeToGoo()
Run Code Online (Sandbox Code Playgroud)

'a'现在是Foo的一个实例,
现在我想通过使用方法"changeToGoo"将其更改为Goo的实例,并添加其他值.

如何在Python中完成?

我试过了:

self.__class__ = Goo
Run Code Online (Sandbox Code Playgroud)

但当我检查:

type(a)
Run Code Online (Sandbox Code Playgroud)

它仍然是Foo,而不是Goo.

python oop class self superclass

4
推荐指数
1
解决办法
668
查看次数

使用 pytest 测试多个选项

我正在尝试测试 Web API。假设一个端点接受多个参数:

  • 类型:可能的值为“大”、“小”、“中”
  • 颜色:可能的值为“黑色”、“白色”、“红色”
  • 运输:可能值为“1”、“2”、“7”

我想测试这些的所有组合,以确保 API 返回正确的结果。起初我以为我可以建造 3 个装置:

valid_types = ["big", "small", "medium"]
valid_colors = ['black', 'white', 'red']
valid_shipping = ['1', '2', '7']

@pytest.fixture(params=valid_types)
def valid_type(request):
    return request.param


@pytest.fixture(params=valid_colors)
def valid_color(request):
    return request.param


@pytest.fixture(params=valid_shipping)
def valid_ship(request):
    return request.param
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何为所有这些创建排列。我的测试应该像这样运行:

def test_api_options(valid_type, valid_color, valid_ship):
    url_query = "?type={}&color={}&ship={}".format(valid_type, valid_color, valid_ship)
    r = requests.get("{}{}".format(base_url, url_query)
Run Code Online (Sandbox Code Playgroud)

测试应该针对每个排列运行,并生成一个新的 url,其中包含每个排列的可用选项。我怎样才能用 pytest 做到这一点?

python pytest

4
推荐指数
1
解决办法
968
查看次数