我正在使用YouTube Data API v3创建Android应用.到目前为止一直很好,直到我意识到很多视频都没有播放.
我得到"来自持有人的内容因版权原因在您所在的国家/地区被屏蔽"....
我用谷歌搜索,似乎解决这个问题的方法是使用版本3的YouTube.Search.List对象并设置:
search.setVideoSyndicated("true");
Run Code Online (Sandbox Code Playgroud)
不幸的是,这太过限制了.所有Vevo视频和谁知道结果中还有什么消失,即使这些视频播放正常.
我已经知道search.setVideoEmbeddable("true")这不是这个等式中感兴趣的变量.
现在我应该补充一下,我已经倾注了文档并最终找到了这个:
...说:
检索视频以便在移动设备上播放
要确保API响应仅包含适合在移动设备上播放的视频,请将fields参数设置为以下值.请注意,必须转义参数值中显示的哈希字符(#)(%23).
fields=entry[link/@rel='http://gdata.youtube.com/schemas/2007%23mobile']
Run Code Online (Sandbox Code Playgroud)
如果您正在为移动设备开发应用程序,则可能还需要在API请求中指定移动投影.
....
好吧......所以尽管这只适用于API版本2.0(?)我想,"嘿......我是一个好奇的家伙......"我创建了以下测试URL并通过Firefox运行它查看XML有效负载.
嗯......这确实有效.请注意,"/ mobile /"在文档中称为"投影",通常在公共端点中为"/ api /".
现在,当我说"这确实有用"时,这意味着我恢复了XML,确实过滤掉了"因版权原因阻止"播放错误的视频.
然而,搜索P!NK或Rihanna或(在此处插入流行艺术家du jour)会产生AWFUL结果.
我的头痛恶化:YouTube的官方移动Android应用程序确实显示YouTube Vevo的内容,因为当我没有设置联合到真,并且他们没有显示我的国家因版权原因而被阻止的所有无数视频.
现在我在美国大苹果公司,所以我们不要把"你们国家"的东西用来暗示我在一些不幸的城堡里.
因此,简而言之,在尝试创建可接受的移动用户体验或我遗漏某些内容时,YouTube数据API中存在一些问题.我希望它是后者,有人可以告诉我如何使用YT Data API v3来获取Vevo(宝宝)并且因为版权原因(洗澡水)结果丢失了6个"在你的国家被阻止".
这个问题似乎是长期存在的,但也是一个"利基"领域,谷歌会告诉他们的API开发者社区使用联合属性来删除其合作伙伴的所有内容,例如Vevo似乎希望他们的内容在移动.Android的播放器API会显示这些广告,因此它毕竟是货币化的收入来源.
这里的任何人都可以告诉我这个等式中我缺少什么,或者这只是谷歌中没有人知道或认为足够优先来补救的东西?我是API的第3版的新手,所以也许我只是不知道关键的东西.
我有一本字典:
default = {'a': ['alpha'], 'b': ['beta','gamma'], 'g': []}
Run Code Online (Sandbox Code Playgroud)
我希望消除空值:
default = {'a': ['alpha'], 'b': ['beta','gamma']}
Run Code Online (Sandbox Code Playgroud)
我写了一个函数(按照网络上的一个例子)
def remove_empty_keys(d):
for k in d.keys():
try:
if len(d[k]) < 1:
del[k]
except:
pass
return(d)
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
1-我没有找到错误,为什么它总是返回以下 -
remove_empty_keys(default)
{'a': ['alpha'], 'b': ['beta'], 'g': []}
Run Code Online (Sandbox Code Playgroud)
2-是否有内置函数从Python字典中删除/删除Null/None/empty值而不创建原始字典的副本?
对于那些喜欢正则表达式的人来说,我有一个很好的挑战; 像我这样的.不幸的是,我无法想出这个.
这个正则表达式是反向匹配.我需要匹配除了适当数量之外的所有东西; 喜欢:
这些类型不需要匹配:
0,00
0.00
12314345.7
24234.54
34435,00
34545,43
这些类型需要匹配:
0.00
,87
1e3,67
所以除了带逗号或点的十进制数之外的所有内容都需要在JavaScript中匹配(是的,反向).
我做了这个:
([^0-9]+([^\.,]{0,1})+[^0-9]{0,2})
Run Code Online (Sandbox Code Playgroud)
但是,显然,它无法正常工作,看到它通过多个逗号或点,并且不会将小数限制为最多两个.
我在 Powershell 中使用 Select-String 进行了很多正则表达式匹配。
例如,最简单也可能是最常见的匹配,IPv4 地址:
$regex = \b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
Run Code Online (Sandbox Code Playgroud)
现在,如果我将其匹配到一行中:
$输出=`
“等等,202.100.100.9,你要匹配这一行中间的 IP,
但不在这一行,因为“2.a.3.one”不是有效的 IPv4 地址”
然后我这样做:
$output | Select-String $regex
Run Code Online (Sandbox Code Playgroud)
它会给我整条线。
我不能真正以原始形式使用它。
但是如果我使用这个:
$output | Select-String $regex | %{$_.Matches} | %{$_.Value}
Run Code Online (Sandbox Code Playgroud)
它只会给我 IP 地址,这很棒。
有没有更简单的方法来做到这一点?
我宁愿不输入 | %{$ .匹配} | %{$ .Value} 每次我只想获取一个特定的字符串。
我有适用的代码,但我不知道为什么它有效.
这将生成一个包含英文字母的每个字母的列表:
[char[]]([char]'a'..[char]'z')
Run Code Online (Sandbox Code Playgroud)
但是,这不会:
[char]([char]'a'..[char]'z')
Run Code Online (Sandbox Code Playgroud)
这实际上会生成一个从97到122的数字列表
([char]'a'..[char]'z')
Run Code Online (Sandbox Code Playgroud)
有没有专家可以向我解释这是如何工作的(或不是)?
谁能向我解释原因:
iex "C:\Program Files\test\test.exe"
Run Code Online (Sandbox Code Playgroud)
返回值:
C:\ Program:术语“ C:\ Program”未被识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试。在第1行:char:1 + C:\ Program Files \ test \ test.exe + ~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(C:\ Program:String)[],CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
我试图使它以多种不同的方式工作:
()我不知道我还能怎么认识到必须运行整个字符串,而不仅仅是第一个单词。
回答后的例子
问题已经回答。这是我想开始工作的东西:
$tool = "C:\Windows\System32\cmd.exe"
$param = "/c ping google.com -n 1"
$test = & $tool $param
Write-Host $test
Run Code Online (Sandbox Code Playgroud)
事实证明,在这种情况下,&带有的行不适用于双引号"",而实际上没有双引号也可以。我认为这与涉及参数/参数有关。
我一直在使用这个脚本来创建文件夹:
$i = 1
cd\
md d:\user$1
$i++
Run Code Online (Sandbox Code Playgroud)
然而它吐出像这样的文件夹......
d:\user1
d:\user2
d:\user3
Run Code Online (Sandbox Code Playgroud)
我想要的是两个前导零,所以当我到达009它时,优雅地切换到单个前导零.
同样明智的099应该过渡到100.
这是我想要输出的内容:
d:\user001
d:\user010
d:\user100
Run Code Online (Sandbox Code Playgroud)
目前我正在将脚插入到脚本之前$i,并在跳转到第二个和第三个数字时将其删除.
我读过的所有内容都提到使用字符串来获取前面的零.
这是唯一的方法吗?
问题来自:
Reddit:获取powershell来计算并包含前导零而不使用字符串?
我想检查两个字符串是否包含相同的字母和数字
但忽略特殊字符,例如_
例子:
word1 = "ABCD" , word2 = "ACDB" => return True
word1 = "ABC1E_" , word2 = "AE1CB" => return True
word1 = "AB12" , word2 = "ABE2" => return False
word1 = "ABB" , word2 = "AB" => return True
Run Code Online (Sandbox Code Playgroud) 示例代码:
package main
import "fmt"
func main() {
example_container := []interface{}{
map[string]string{
"name": "bob",
"id": "1",
},
map[string]string{
"name": "jim",
"id": "2",
},
}
fmt.Printf("%v\n", example_container)
fmt.Printf("%v\n", example_container[0])
fmt.Printf("%v\n", example_container[0]["name"])
}
Run Code Online (Sandbox Code Playgroud)
问题线:
fmt.Printf("%v\n", example_container[0]["name"])
Run Code Online (Sandbox Code Playgroud)
错误:
invalid operation: example_container[0]["name"] (type interface {} does not support indexing)
Run Code Online (Sandbox Code Playgroud)
题:
那么如何访问此界面中的键?
我是否必须使用方法集来定义更精细的界面来实现此目的?
powershell ×4
dictionary ×2
python ×2
go ×1
interface ×1
javascript ×1
list ×1
regex ×1
string ×1
youtube-api ×1