小编orh*_*orh的帖子

从词典列表中提取所有键

我正在尝试获取字典列表中的所有键的列表,以便填写csv.DictWriter的fieldnames参数.

以前,我有这样的事情:

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]
Run Code Online (Sandbox Code Playgroud)

我正在使用fieldnames = list[0].keys()列表中的第一个字典并提取其密钥.

现在我有这样的东西,其中一个字典有更多的键:值对比其他字典(可能是任何结果).新密钥是根据来自API的信息动态添加的,因此它们可能会或可能不会出现在每个字典中,而且我事先并不知道会有多少新密钥.

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5, "height":4},
{"name": "Pam", "age": 7}
]
Run Code Online (Sandbox Code Playgroud)

我不能只使用fieldnames = list[1].keys()它,因为它不一定是第二个元素将有额外的键.

一个简单的解决方案是找到具有最多键数的字典并将其用于字段名,但如果您有这样的示例,那将无效:

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5, "height":4},
{"name": "Pam", "age": 7, "weight":90}
]
Run Code Online (Sandbox Code Playgroud)

其中第二个和第三个字典都有3个键,但最终结果应该是列表 ["name", "age", "height", "weight"]

python

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

从 PROC SGPLOT 获取 PDF 格式的矢量图形输出

有人有关于从 PROC SGPLOT (以及 SGSCATTER 等类似功能)获取干净 PDF 输出的提示吗?

当我创建图形并使用 ODS 将其写入 PDF 时,结果在 sas EG 报告窗口中看起来不错,但 PDF 输出被光栅化为 PDF 的 DPI 设置,因此如果放大 PDF,您可以看到像素化。此外,如果我不定义颜色/线条样式,PDF 中的输出将使用不同的颜色和样式(sas 报告窗口中的实线在 PDF 中变为虚线)。

如果我使用 PROC GPLOT 制作相同的图表,它会带有矢量化文本和线条,在缩放/打印时看起来不像垃圾。

我需要更改某个选项吗?我需要设置一些标志吗?我已经尝试过类似的事情OPTIONS DEVICE=SVG,但似乎不起作用。设置非常高的 DPI 也不是一个很好的解决方案。

代码示例(但实际上,这种情况发生在具有任何数据/代码的所有 SG *函数上):

options nonumber orientation=landscape;
ods pdf file='FILENAME.pdf' notoc;

proc sgplot data=shipped;
  series x=date y=weighted_price / group=type;
run;

proc gplot data=shipped;
  plot weighted_price*date=type;

symbol1   c=blue      i=join v=none w=1 l=1;
symbol2   c=red       i=join v=none w=1 l=1;
symbol3   c=brown     i=join v=none w=1 l=1; …
Run Code Online (Sandbox Code Playgroud)

sas

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

更快地计算Python中的文件

我想知道文件夹中有多少文件(特别是Windows上的共享网络文件夹,如果这在这里有所不同).

我现在正在使用此代码:

include os.path
def countFiles(path):
    return len([f for f in os.listdir(path)
                if os.path.isfile(os.path.join(path, f))])
Run Code Online (Sandbox Code Playgroud)

当文件夹中有少量文件时,它可以正常工作,但在包含许多文件的目录(例如4000)中需要很长时间.我经常运行这个(文件每隔约15秒加一次),所以减速很痛苦.

在我的特定情况下,我知道没有任何子文件夹,所以我可以跳过os.path.isfile检查,但我想保持我的解决方案一般.坦率地说,我很惊讶os.path上没有内置的#of文件功能.

python

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

标签 统计

python ×2

sas ×1