小编dre*_*mac的帖子

如何在Jinja2中模拟while循环

我如何在jinja2中执行以下操作:

while apples < oranges:
    # some work here.
Run Code Online (Sandbox Code Playgroud)

根据http://jinja.pocoo.org/docs/dev/extensions/#loop-controls,以及我得到的错误,Jinja2不支持while循环.

问题是我想继续做一些工作,只要价值apples小于oranges

谢谢你的帮助.

同样的东西while True:也是好的.

while-loop jinja2 python-2.7

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

使用DictReader时替换字段名

我有一个test.csv文件:

foo,bar,foobar,barfoo

1,2,3,4
5,6,7,8
9,10,11,12
Run Code Online (Sandbox Code Playgroud)

以下CSV解析器:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import json

f = open ( 'test.csv', 'r' )

reader = csv.DictReader( f, fieldnames = ( "foo","bar","foobar","barfoo" ))

out = json.dumps( [ row for row in reader ], ensure_ascii=False, encoding="utf-8")

print out
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来替换输出中的字段名,而无需更改CSV文件的标题?

我目前的输出是这样的:

[
   {
      "foobar":"foobar",
      "foo":"foo",
      "bar":"bar",
      "barfoo":"barfoo"
   },
   {
      "foobar":"3",
      "foo":"1",
      "bar":"2",
      "barfoo":"4"
   },
   {
      "foobar":"7",
      "foo":"5",
      "bar":"6",
      "barfoo":"8"
   },
   {
      "foobar":"11",
      "foo":"9",
      "bar":"10",
      "barfoo":"12"
   } …
Run Code Online (Sandbox Code Playgroud)

python csv json etl

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

使用内连接组合两个数组的数据

我在数组中有两个数据集:

arr1 = [
  ['2011-10-10', 1, 1],
  ['2007-08-09', 5, 3],
  ...
]

arr2 = [
  ['2011-10-10', 3, 4],
  ['2007-09-05', 1, 1],
  ...
]
Run Code Online (Sandbox Code Playgroud)

我想将它们组合成一个这样的数组:

arr3 = [
  ['2011-10-10', 1, 1, 3, 4],
  ...
]
Run Code Online (Sandbox Code Playgroud)

我的意思是,只需将这些行与同一date列组合在一起.

===编辑===

谢谢大家,为了澄清,我不需要那些没有出现在两个数组中的行,只需删除它们.

python arrays arrayofarrays

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

是否可以让vim在Windows上使用正斜杠?

Windows上的ViM本地构建在文件路径中使用反斜杠,包括完成,但如果我手动使用正斜杠(事实上所有Windows API都理解它们,cmd.exe是唯一的例外)它可以正常工作,并且反斜杠会导致各种问题,因为它们会成为转义的两倍并且"dwim"逻辑并不真正起作用.例如:

:vimgrep /Foo/ src/*
Run Code Online (Sandbox Code Playgroud)

工作得很好,但是

:vimgrep /Foo/ src\*
Run Code Online (Sandbox Code Playgroud)

没有,因为\逃脱了*.手动我只是写正斜杠,但制表完成总是给我反斜杠,所以我必须一直改变它.

是否可以在默认情况下重新配置ViM以使用正斜杠(最好不重新编译)?

windows vim configuration path

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

Python和多重继承中的方法顺序

在Python中,如果使用相同的方法定义两个类并且打算将这两个类作为父类,则:

class A(object):
     def hello(self):
         print "hello from class a" 
Run Code Online (Sandbox Code Playgroud)

和:

class B(object):
     def hello(self):
         print "hello from class b"
Run Code Online (Sandbox Code Playgroud)

当您定义子类并按顺序A和B添加两个父类时:

class C(A, B):
     def __init__(self):
         self.hello()
Run Code Online (Sandbox Code Playgroud)

调用self.method()时使用的方法是属于A的方法,或继承列表中的第一个类:

>>> C()
hello from class a
<__main__.C object at 0x10571e9d0>
Run Code Online (Sandbox Code Playgroud)

虽然在我的所有测试用例中似乎都是如此,但我无法在文档或在线中找到它在任何平台和语言实现中实际上是安全的.任何人都可以确认可以安全地假设列表中的第一个继承类将始终是使用的方法(不管super().__ init __()调用等)或指向我确认这一点的官方文档?

谢谢,

python oop inheritance multiple-inheritance method-resolution-order

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

Excel正在从CSV文件中删除前导0

它认为Excel正在剥离领先的0.我被告知在导出过程中将列格式更新为文本将修复此问题并修改Excel输出(来自"ProofAndTracking actionIpromoteuAutomation"文件,但我找不到此文件或如何访问生成Excel格式代码的位置) .

我从未使用过Excel.我尝试了这个,但它似乎是一个本地修复:http: //excelribbon.tips.net/T010262_Handling_Leading_Zeros_in_CSV_Files.html 有人能指出我正确的方向开始吗?

我已经研究了这些答案如何在从数据表导出到excel时阻止前导0被剥离?导出Excel:避免剥离前导零
提前感谢!

这是我认为导致问题的功能,但还不确定如何在此处将列格式化为文本./**格式并发送订单和跟踪信息(通过Excel电子表格)为ipromoteu(150837)*/

public function actionIpromoteuAutomation() {
    $ordersGroup1 = $this->getIpromoteuProof();
    $ordersGroup2 = $this->getIpromoteuProofHistory();
    $orders = array_merge($ordersGroup1, $ordersGroup2);
    $fileName = 'Hit Promo Order Tracking ' . date('m-d-Y');
    $this->_export($orders, $fileName);
    $fileName = $fileName . '.xls';
    $toIPROMOTEU = array(//email to be sent to HR when request is submitted
        'body' => 'Attached, please find the Excel spreadsheet containing'
        . ' order details for orders on ' . date('m/d/Y') . '.',
        'from_email' => 'donotreply@hitpromo.net', …
Run Code Online (Sandbox Code Playgroud)

csv excel dataformat autocorrect

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

将嵌套类转换为字典

我想将嵌套类转换为漂亮的键/值字典,并保留每个属性的类名和嵌套路径,以便以后轻松搜索.

这是我的示例类:

var agreement = new Agreement
            {
                ID = 101,
                Description = "Convert to dictionary",
                Customer = new Customer
                {
                    FirstName = "John",
                    LastName = "Smith",
                    Age = 30,
                    Address = new List<Address>() 
                    { 
                        new Address 
                        {
                            Name = "Los Angeles 1",
                            ZipCode = 25437
                        }, 
                        new Address
                        {
                            Name = "New York 25",
                            ZipCode = 25441
                        }
                    }
                }
            };
Run Code Online (Sandbox Code Playgroud)

这是我在字典中预期的键/值输出:

KEY                                    VALUE
Agreement.ID:                          101
Agreement.Description:                 Convert to dictionary
Agreement.Customer.FirstName:          John
Agreement.Customer.LastName:           Smith
Agreement.Customer.Age:                30
Agreement.Customer.Address[0].Name:    Los Angeles …
Run Code Online (Sandbox Code Playgroud)

c# recursion dictionary traversal

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

在Python中加载与Jinja2嵌套的YAML

我有一个YAML文件(all.yaml),如下所示:

...
var1: val1
var2: val2
var3: {{var1}}-{{var2}}.txt
...
Run Code Online (Sandbox Code Playgroud)

如果我像这样在Python中加载它:

import yaml

f = open('all.yaml')
dataMap = yaml.safe_load(f)
f.close()
print(dataMap["var3"])
Run Code Online (Sandbox Code Playgroud)

输出{{var1}}-{{var2}}.txt而不是val1-val2.txt.

是否可以用值替换嵌套变量?

我试着加载它:

import jinja2
templateLoader = jinja2.FileSystemLoader( searchpath="/path/to/dir" )
templateEnv = jinja2.Environment( loader=templateLoader )
TEMPLATE_FILE = "all.yaml"
template = templateEnv.get_template( TEMPLATE_FILE )
Run Code Online (Sandbox Code Playgroud)

不再抛出异常,现在我陷入困境,必须研究如何继续.

python jinja2 pyyaml computed-properties

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

如何从 git 中稀疏检出子目录而不检出其父目录?

我正在尝试从 git 存储库中稀疏签出一个子目录。

该存储库包含多个 WordPress 插件,我想一一查看它们。通过下面发布的解决方案,我遇到了这样的问题:每次我检查子目录的父目录时也会检查并且插件无法工作。

我尝试过这样的事情是否可以在不先检查整个存储库的情况下进行稀疏结帐?以及用于简单 Web 部署的 Git 稀疏结帐之类的东西。

我真的希望有人可以帮助我,因为我只是觉得我错过了一些信息。

谢谢。

git subdirectory git-checkout sparse-checkout git-sparse-checkout

6
推荐指数
0
解决办法
751
查看次数

访问换行符成为_x000D_

我正在尝试从excel中的数据中获取访问报告.所以我使用外部数据选项在访问中导入我的Excel工作表,但我的换行符仍然显示为"_x000D_"

作为一个例子,我使用一个带有4列的excel表,所有列都带有标题,并且所有数据都包含从左到右依次排列的1行数据:

="a"&char(10)&"b" 
="a"&char(13)&"b" 
="a"&char(10)&char(13)&"b" 
="a"&char(13)&char(10)&"b"
Run Code Online (Sandbox Code Playgroud)

在我的excel表单中,我尝试将换行符更改为我能想到的所有内容,但似乎已完成某些操作的是char(10)和char(13),但char(10)根本没有出现在访问中且char (13)似乎成了"_x000D_"

excel ms-access newline excel-formula

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