小编Pra*_*nab的帖子

更改 Github 上分叉的可见性会导致什么安全问题?

在 Github 上,假设我分叉了一个项目,但不想在我的个人资料中显示它,因为该项目与我因非竞争原因而不允许从事的事情相关。

当我尝试将分叉设置为私有时,我在 Github 上收到以下错误消息:

“出于安全原因,您无法更改分叉的可见性。”

改变分叉的可见性有哪些潜在的安全隐患?

github

61
推荐指数
1
解决办法
3万
查看次数

如何从单独的文件将数据结构(例如dict)导入或包含到Python文件中

我知道我可以使用常见文件包含Python代码import MyModuleName- 但是如何导入一个dict呢?

我试图解决的问题是我有一个需要在可编辑位置的文件中的字典,而实际的脚本在另一个文件中.dict也可以由非程序员手工编辑.

script.py

airportName = 'BRISTOL'
myAirportCode = airportCode[airportName]
Run Code Online (Sandbox Code Playgroud)

myDict.py

airportCode = {'ABERDEEN': 'ABZ', 'BELFAST INTERNATIONAL': 'BFS', 'BIRMINGHAM INTERNATIONAL': 'BHX', 'BIRMINGHAM INTL': 'BHX', 'BOURNMOUTH': 'BOH', 'BRISTOL': 'BRS'}
Run Code Online (Sandbox Code Playgroud)

如何airportCodescript.py中访问dict ?

python import module

28
推荐指数
2
解决办法
7万
查看次数

Django Rest Framework - 嵌套序列化无法按预期工作

使用Django-REST-Framework时,我无法在嵌套的序列化对象中显示选定的字段.

我能够正确地序列化整个Address模型,但我只需要几个字段Address,嵌套在我的序列化中Outlet.有一个

尝试outlet_address在序列化程序上获取字段值时获得AttributeError OutletSerializer.序列化程序字段可能名称不正确,并且与Outlet实例上的任何属性或键都不匹配.原始异常文本是:'Outlet'对象没有属性'outlet_address'.

api_v1/models.py

class Address(models.Model):
    building = models.CharField(_("shop number, floor & building"), max_length=128)
    street = models.CharField(_("street"), max_length=128, blank=True)
    area = models.ManyToManyField(Area, related_name='address')
    city = models.ForeignKey(City, related_name='address')
    pin_code = models.CharField(_("PIN code"), max_length=6, default="")

    def __unicode__(self):
        return self.building + " " + self.street + " ..."


class Outlet(models.Model):
    name = models.CharField(max_length=100, blank=True)
    chain = models.ForeignKey(Chain, related_name='outlet', blank=True, null=True)
    organization = models.ForeignKey(Organization, blank=True, null=True)
    address = models.OneToOneField(Address, related_name='outlet_address')
    thumbnail = …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

10
推荐指数
2
解决办法
9977
查看次数

为需要30分钟执行的脚本创建Web界面

我编写了一个python脚本来处理CSV文件中的一些数据.该脚本需要3到30分钟才能完成,具体取决于CSV的大小.

现在我想为此添加一个Web界面,这样我就可以从任何地方上传CSV数据文件.我写了一个基本的HTTP POST上传页面,并使用了Python的CGI模块 - 但是脚本在一段时间后才会超时.

该脚本在开始时输出HTTP标头,并在迭代CSV的每一行之后输出数据位.例如,此print语句将每30秒左右触发一次.

# at the very top, with the 'import's
print "Content-type: text/html\n\n Processing ... <br />"

# the really long loop.
for currentRecord in csvRecords:
    count = count + 1
    print "On line " + str(count) + " <br />"
Run Code Online (Sandbox Code Playgroud)

我假设浏览器会收到标题,并等待,因为它继续接收少量数据.但实际上似乎发生的事情是它根本没有收到任何数据,并且Error 504在给出带有大量行的CSV时超时.

也许在某处发生了一些缓存?从日志中,

[Wed Jan 20 16:59:09 2010] [error] [client ::1] Script timed out before returning headers: datacruncher.py, referer: http://localhost/index.htm
[Wed Jan 20 17:04:09 2010] [warn] [client ::1] Timeout waiting for output from …
Run Code Online (Sandbox Code Playgroud)

python timeout http-headers http-status-code-504

7
推荐指数
2
解决办法
3010
查看次数

在Python中对CSV进行排序

我假设使用Python在多个文本/数字字段上排序CSV文件将是一个已经解决的问题.但我无法在任何地方找到任何示例代码,除了专注于排序日期字段的特定代码.

如何按顺序对多个字段中的相对较大的CSV文件(数万行)进行排序?

Python代码示例将不胜感激.

python csv sorting

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

当事先不知道字段时使用 DictWriter 写入 CSV

我正在将一大段文本解析为字典,最终目标是创建一个 CSV 文件,其中键作为列标题。

csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

问题的出现是因为任何第 n 行的字典都可以包含一个新的、以前从未使用过的密钥。然后我希望 CSV 也包含这个新密钥的列。简而言之,我的所有领域都是事先不知道的,所以我无法fieldnames在一开始就编译出完整的内容。

是否有推荐的方法csv.DictWriter不忽略缺失的字段,而是添加它们fieldnames?仅fieldnames在此时进行更改就会导致先前的行的字段数量错误地减少。

python csv dictionary python-2.7 export-to-csv

6
推荐指数
1
解决办法
7295
查看次数

如何使用 python 创建包含签名字段的 PDF 文件?

为了能够使用基于令牌的 DSC 对 PDF 文档进行签名,我的 PDF 中需要一个所谓的签名字段。

这是一个矩形区域,您可以使用例如 Adob​​e Reader 或 Adob​​e Acrobat 用数字签名填充。

矩形区域的图像,您可以使用例如 Adob​​e Reader 或 Adob​​e Acrobat 用数字签名填充。

我想用 Python 创建这个可签名的 PDF。

我从纯文本或 .docx 格式的富文本文档(图像和文本)开始。

如何在 Python 中使用此字段生成 PDF 文件?

python pdf pdf-generation digital-signature

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

如何为函数本身设置repr?

__repr__用于返回对象的字符串表示,但在 Python 中,函数也是对象本身,并且可以具有属性

如何设置__repr__函数的?

在这里看到可以为函数外部的函数设置一个属性,但通常__repr__在对象定义本身内设置一个属性,所以我想在函数定义本身内设置 repr。


我的用例是,我正在使用Tenacity重试具有指数退避功能的网络函数,并且我想记录我最后调用的函数的(信息性)名称。

retry_mysql_exception_types = (InterfaceError, OperationalError, TimeoutError, ConnectionResetError)


def return_last_retry_outcome(retry_state):
    """return the result of the last call attempt"""
    return retry_state.outcome.result()


def my_before_sleep(retry_state):
    print("Retrying {}: attempt {} ended with: {}\n".format(retry_state.fn, retry_state.attempt_number, retry_state.outcome))


@tenacity.retry(wait=tenacity.wait_random_exponential(multiplier=1, max=1200),
                stop=tenacity.stop_after_attempt(30),
                retry=tenacity.retry_if_exception_type(retry_mysql_exception_types),
                retry_error_callback=return_last_retry_outcome,
                before_sleep=my_before_sleep)
def connect_with_retries(my_database_config):
    connection = mysql.connector.connect(**my_database_config)
    return connection
Run Code Online (Sandbox Code Playgroud)

目前retry_state.fn显示<function <lambda> at 0x1100f6ee0>类似于@chepner 所说的内容,但我想向其中添加更多信息。

python repr

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

'import feedparser'通过SSH工作,但在浏览器中失败

我使用SSH通过SSH安装了feedparser

$ python setup.py install --home=~/httpdocs/python-libraries/feedparser-4.1/
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我似乎没有权限正确运行'python setup.py install'

我在'test.py'中运行以下python代码.

print "Content-type: text/html\n\n"
try:
    import feedparser
except:
    print "Cannot import feedparser.\n"
Run Code Online (Sandbox Code Playgroud)

我通过SSH登录时代码运行正常.但是当我在浏览器中查看它时,它会打印出来

Cannot import feedparser.

有任何想法吗?

python browser import feedparser

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

当权限为755时,Python脚本通过apache运行,但在777时提供错误500?

我将一个基本的python脚本上传到Dreamhost的共享主机,并将权限更改为777.它从shell(通过SSH)运行良好,但从浏览器调用时会显示"服务器错误".

在error.log中,错误是'Premature end of script headers'.

我写信给DreamHost,他通过更改权限来回复(令人惊讶的是很快)755,并且脚本在apache中开始正常工作(我可以在浏览器中看到输出).

但这似乎不对 - 如何添加额外的宽松权限可以打破任何功能?

cgi chmod 777

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

DRF 序列化程序中多个查找字段的自定义超链接 URL 字段

我正在使用Django Rest Framework为我的项目开发 web api。在我的项目中,我需要像这样构建嵌套的 api 端点:

   /users/ - to get all users
   /users/<user_pk> - to get details of a particular user
   /users/<user_pk>/mails/ - to get all mails sent by a user
   /users/<user_pk>/mails/<pk> - to get details of a mail sent by a user
Run Code Online (Sandbox Code Playgroud)

所以,我使用drf-nested-routers来方便编写和维护这些嵌套资源。

我希望我所有端点的输出都有超链接,用于获取每个嵌套资源的详细信息以及其他详细信息,如下所示:

[
    {
        "url" : "http://localhost:8000/users/1",
        "first_name" : "Name1",
        "last_name": "Lastname"
        "email" : "name1@xyz.com",
        "mails": [
            {
                 "url": "http://localhost:8000/users/1/mails/1",
                 "extra_data": "This is a extra data",
                 "mail":{
                     "url": "http://localhost:8000/mails/3"
                     "to" : "abc@xyz.com", …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework drf-nested-routers

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

如何根据字典键从嵌套字典创建多个新的数据框列

基于这个问题,从这个数据框开始:

import pandas as pd
data = {'key':[111, 112, 113, 114],'other_data':[1, 2, 5, 7]}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

df

   key  other_data
0  111           1
1  112           2
2  113           5
3  114           7
Run Code Online (Sandbox Code Playgroud)

我想根据字典键和数据框中的一个指定列映射多个新列。

d = {
    "111": {
        "en": 4,
        "es": 2
    },
    "112": {
        "en": 1,
        "es": 8
    },
    "113": {
        "en": 0,
        "es": 11
    },
    "114": {
        "en": 2,
        "es": 3
    }
}
Run Code Online (Sandbox Code Playgroud)

预期的输出数据帧是

key,other_data,en,es
111,1,4,2
112,2,1,8
113,5,0,11
114,7,2,3
Run Code Online (Sandbox Code Playgroud)

数据帧很大,因此如果可能,我更愿意在一个循环或操作中执行此操作。

我尝试了map()和 的各种组合,apply()但无法使其正常工作。

python dictionary dataframe pandas

0
推荐指数
1
解决办法
58
查看次数