可能重复:
在Python中,如何确定对象是否可迭代?
如何检查Python对象是否支持迭代,又称迭代对象(参见定义)
理想情况下,我希望函数类似于isiterable(p_object)返回True或False(建模后isinstance(p_object, type)).
假设我在http://example.com上有一个网站.我真的很想让机器人看到主页,但是任何其他页面都需要被阻止,因为它对蜘蛛来说毫无意义.换一种说法
http://example.com和http://example.com/应该被允许的,但 http://example.com/anything和http://example.com/someendpoint.aspx应该被阻止.
此外,如果我可以允许某些查询字符串直接进入主页,那将是很棒的:http: //example.com?okparam = true
对于一些基于搜索的代码(在Python中),我需要编写一个查询语法解析器来解析一个简单的类似google的查询语法.例如:
所有这些单词"with this phrase"或者OR this site:within.site filetype:ps from:lastweek
随着搜索变得越来越流行,我希望能够轻松找到一个python库来做这件事,从而避免重新发明轮子.可悲的是,谷歌上的搜索并没有太多收益.
对于这个简单的任务,你会推荐什么作为python解析库?
我在工作中使用.NET XML技术.我非常喜欢的一件事是XSLT引擎,更确切地说是它的可扩展性.然而,有一件小东西一直是烦恼的源头.没有任何重大或我们无法忍受的东西,但它阻止我们生成我们想要生成的漂亮的XML.
我们做的一件事是将节点内联转换并将节点从一个XML文档导入另一个XML文档.
遗憾的是,当您将节点保存到XmlTextWriter(实际上无论何种XmlWriter.Create(Stream) 返回)时,命名空间定义都会被抛出,无论是否有必要(先前已定义).你会得到以下xml:
<root xmlns:abx="http://bladibla">
<abx:child id="A">
<grandchild id="B">
<abx:grandgrandchild xmlns:abx="http://bladibla" />
</grandchild>
</abx:child>
</root>
Run Code Online (Sandbox Code Playgroud)
有没有人建议如何说服.NET对其命名空间定义有效?
PS.作为一个额外的好处,我想覆盖默认命名空间,在编写节点时更改它.
我正在做一些性能指标,我遇到了一些对我来说很奇怪的事情.我计时以下两个功能:
private static void DoOne()
{
List<int> A = new List<int>();
for (int i = 0; i < 200; i++) A.Add(i);
int s=0;
for (int j = 0; j < 100000; j++)
{
for (int c = 0; c < A.Count; c++) s += A[c];
}
}
private static void DoTwo()
{
List<int> A = new List<int>();
for (int i = 0; i < 200; i++) A.Add(i);
IList<int> L = A;
int s = 0;
for (int j = 0; …Run Code Online (Sandbox Code Playgroud) Facebook Graph API允许从JSON中获取Facebook对象,如帖子,视频等.以下是帖子的示例:(取自文档):
{
"id": "719323658_129694190395214",
"from": {
"name": "Rabia Yalcinkaya",
"id": "719323658"
},
"message": "COK MUHTESEM!!!",
"picture": "http://external.ak.fbcdn.net/safe_image.php?d=41762b7121ee68754ebea48dee4568aa&w=130&h=130&url=http%3A%2F%2Fats.vimeo.com%2F192%2F882%2F19288238_200.jpg",
"link": "http://vimeo.com/5646785",
"source": "http://vimeo.com/moogaloop.swf?clip_id=5646785",
"name": "Watermelon carving",
"caption": "vimeo.com",
"description": "Me carving a watermelon.",
"icon": "http://static.ak.fbcdn.net/rsrc.php/z9XZ8/hash/976ulj6z.gif",
"type": "video",
"created_time": "2010-06-23T10:58:17+0000",
"updated_time": "2010-06-23T10:58:17+0000",
"likes": 1
},
Run Code Online (Sandbox Code Playgroud)
如何构建一个网址,允许您链接回Facebook上布雷特墙上的原始视频(或其他类型)?形式的东西
http://www.facebook.com/<USER_ID>/video/<VIDEO_ID>
Run Code Online (Sandbox Code Playgroud)
谢谢,波阿斯
.NET允许通过使用所谓的扩展对象来扩展XSLT.非常方便,非常方便.您可以通过创建类来完成此操作:
public class VeryHandyExtensionFunctions
{
public string VerySmartStringConcat(XPathNodeIterator NodeList)
{
return "some very smart string concat based on NodeList";
}
}
Run Code Online (Sandbox Code Playgroud)
等待一些魔法(见下文)你可以引用VerySmartStringConcat作为xslt的一部分:
<xsl:value-of select="someprefix:VerySmartStringConcat(nodes[@withsomeattribute])"/>
Run Code Online (Sandbox Code Playgroud)
要做到这一点,唯一要做的就是使用XsltArgumentList将扩展类的实例(上面的VeryHandyExtensionFunctions)传递给XslCompiledTransform类:
XsltArgumentList xsltArg = new XsltArgumentList();
xsltArg.AddExtensionObject("SomeUriResolvingToSomePrefix",new VeryHandyExtensionFunctions);
XslCompiledTransform xslTransform;
XmlWriter W = XmlWriter.Create(SomeTarget, Xslt.OutputSettings);
xslTransform.Transform(SomeXmlDocument, xsltArg, W);
Run Code Online (Sandbox Code Playgroud)
.NET在确定如何将XML类型转换为扩展函数的输入参数和返回类型方面相当聪明.然而,每隔一段时间它就会抱怨不支持类型.支持的类型有哪些?
Python附带了一个方便的dir()函数,可以为您列出类的内容.例如,对于这个类:
class C:
i = 1
a = 'b'
Run Code Online (Sandbox Code Playgroud)
dir(C) 会回来的
['__doc__', '__module__', 'a', 'i']
Run Code Online (Sandbox Code Playgroud)
这很好,但请注意现在的顺序'a'与'i'现在的顺序是不同的.
如何按照定义的顺序迭代C的属性(可能忽略内置的doc和模块属性)?对于上面的C级,在将'i'接着'a'.
附录: - 我正在编写一些序列化/日志记录代码,我想按照它们定义的顺序序列化属性,以便输出类似于创建类的代码.
我正在为一个简单的xml整理一个xml架构(请参阅下面的xml和schema).但是我继续收到有关节节点的以下错误:"元素不能包含空格.内容模型为空." .浏览网络我找不到任何简洁的解释,这意味着我可以解决它.有人可以帮忙吗?
编辑:感谢所有人提供有关架构的帮助.我认为这将有助于简要描述内容模型是什么以及为什么它在这里是空的.
XML:
<config>
<section name="facets">
<facet type="format" label="Format" max="4"/>
<facet type="language" max="4"/>
<facet type="pubdate" max="6" submax="8"/>
<facet type="ice_topic" label="Fiction: Topic"/>
</section>
</config>
Run Code Online (Sandbox Code Playgroud)
架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="config">
<xs:complexType>
<xs:sequence>
<xs:element name="section" type="sectionBase"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="sectionBase">
<xs:attribute name="name" type="xs:ID"/>
</xs:complexType>
<xs:complexType name="sectionFacets" >
<xs:complexContent>
<xs:extension base="sectionBase">
<xs:sequence>
<xs:element name="facet" type="sectionFacetsBaseFacet"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="sectionFacetsBaseFacet">
<xs:attribute name="label" type="xs:ID"/>
<xs:attribute name="max" type="xs:positiveInteger"/>
</xs:complexType>
<xs:complexType name="sectionFacetsFormat">
<xs:complexContent>
<xs:extension base="sectionFacetsBaseFacet"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="sectionFacetsPubdate"> …Run Code Online (Sandbox Code Playgroud) python ×4
c# ×3
.net ×2
xml ×2
bots ×1
facebook ×1
generics ×1
googlebot ×1
iterable ×1
list ×1
permalinks ×1
reflection ×1
robots.txt ×1
schema ×1
semaphore ×1
slurp ×1
web-crawler ×1
xmlwriter ×1
xsd ×1
xslt ×1