我正在尝试从云功能中将文件上传到谷歌云存储.但是,我无法将云存储库导入到我的函数中.
可以通过这种方式从云功能中使用云存储吗?
from google.cloud import storage
def upload_blob(bucket_name, blob_text, destination_blob_name):
"""Uploads a file to the bucket."""
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_string(blob_text)
print('File {} uploaded to {}.'.format(
source_file_name,
destination_blob_name))
def log_data(request):
request_json = request.get_json()
BUCKET_NAME = 'my-bucket'
BLOB_NAME = 'test-blob'
BLOB_STR = '{"blob": "some json"}'
upload_blob(BUCKET_NAME, BLOB_STR, BLOB_NAME)
return f'Success!'
Run Code Online (Sandbox Code Playgroud)
Deployment failure:
Function load error: Code in file main.py can't be loaded.
File "/user_code/main.py", line 1, in <module>
from google.cloud import storage
ImportError: cannot …Run Code Online (Sandbox Code Playgroud) python google-cloud-storage google-cloud-platform google-cloud-functions serverless
我正在从一个包含法语和英文字母的文件中读取数据.我试图构建一个包含所有可能的英文和法文字母的列表(存储为字符串).我使用下面的代码执行此操作:
# encoding: utf-8
def trackLetter(letters, line):
for a in line:
found = False;
for b in letters:
if b==a:
found = True
if not found:
letters += a
cur_letters = []; # for storing possible letters
data = urllib2.urlopen('https://duolinguist.wordpress.com/2015/01/06/top-5000-words-in-french-wordlist/', 'utf-8')
for line in data:
trackLetter(cur_letters, line)
# works if I print here
print cur_letters
Run Code Online (Sandbox Code Playgroud)
此代码打印以下内容:
['t','h','e','o','f','a','n','d','i','r','s','b',' y','w','u','m','l','v','c','p','g','k','x','j','z' ,'q','\ xc3','\ xa0','\ xaa','\ xb9','\ xa9','\ xa8','\ xb4','\ xae',' - ','\xe2','\ x80','\ x99','\ xa2','\ xa7','\ xbb','\ xaf']
尽管我指定了UTF编码,但显然法语字母在某种转换为ASCII时丢失了!奇怪的是当我直接打印出这一行(显示为评论)时,法语字符看起来很完美!
我该怎么做才能保留这些字符(é, è, ê, …
我可以创建一个新文档(使用自动生成的 ID),并像这样存储对它的引用:
my_data = {"key": "value"}
doc_ref = db.collection(u'campaigns').add(my_data)
Run Code Online (Sandbox Code Playgroud)
我可以访问数据本身,如:
print (doc_ref[0]) # prints {"key": "value"}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问 doc_ref ID 时,我无法:
# All of these throw attribute errors
doc_ref.get()
doc_ref.data()
doc_ref.id
Run Code Online (Sandbox Code Playgroud)
还有其他帖子建议如何在 Javascript 中执行此操作,但没有一个适用于 Python SDK!
如何访问我创建的文档的生成 ID?
python firebase google-cloud-platform google-cloud-firestore
我正在尝试使用以下react-helmet将Google Analytics添加到我的网站:
<Helmet
htmlAttributes={{
lang: this.props.language
? convertLangCodeToISO639(this.props.language)
: "en",
}}
>
{this.props.googleTrackingID && (
<>
<script
async
src={`https://www.googletagmanager.com/gtag/js?id=${this.props.googleTrackingID}`}
></script>
<script>
{`window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', \"${this.props.googleTrackingID}\");`}
</script>
</>
)}
</Helmet>
Run Code Online (Sandbox Code Playgroud)
不幸的是这给出了错误:
类型错误:无法将符号值转换为字符串。Helmet 不支持渲染 <" + child.type + "> 元素。请参阅我们的 API 了解更多信息。
这不是我正在做的事情,因为我正在使用<script>标签。我还需要外部 JSX 标签,因为有两个子<script>标签。
是什么导致了这个错误?
使用Spring(Java)和Firebase处理后端.我们使用Firebase令牌(附加为身份验证标头)来识别用户,使用内置的UID.
不幸的是,从令牌中提取此UID必须异步完成,因此我只能从onSuccess回调中获取令牌.要提供响应,我必须从下面的deleteUser方法返回一个对象,但是在得到成功/失败回调之前我无法知道响应是什么!
我可以想象一种方法,通过等待一个标志来设置我的回调,或者有一些凌乱的时间,但是我想知道是否有一种干净的方式来处理这个而不引入竞争条件或许多额外的代码.有人可以帮忙吗?
@RequestMapping(value = "/users", method = RequestMethod.DELETE)
public @ResponseBody String deleteUser(@RequestHeader("Authentication") String token) {
FirebaseUtil.getUid(token, new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
//RETURN SUCCESSFUL HERE
}
}, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//RETURN FAILURE HERE
}
});
//MUST RETURN SOMETHING HERE?
User userToDelete = userDao.get(uid); //DONT HAVE THE uid HERE
userDao.delete(uid);
clearUserAccounts(userToDelete);
return uid + " was deleted";
} …Run Code Online (Sandbox Code Playgroud) 编写一个函数来调用一些元素的动画,但是我不能设置任何类型的元素transition.ease().
var circles = canvas.selectAll("circle")
.data(orgs)
.enter().append('circle')
.attr('cx', function(d, i) {
d = orgs[i][0];
return d;
})
.attr('cy', function(d, i) {
d = orgs[i][1];
return d;
})
.attr('r', 5)
.attr('fill', 'rgb(255, 0, 213)');
function update() {
for (var i = 0; i < numBodies; i++) {
var dx = 0;
var dy = 0;
for (var j = 0; j < numBodies; j++) {
if (i!=j) {
dx += orgs[j][0];
dy += orgs[j][1];
}
}
dx = dx/(numBodies …Run Code Online (Sandbox Code Playgroud) 尝试在 python 中读取二进制文件。从数据集页面:
像素存储为无符号字符(1 个字节),取值范围为 0 到 255
我尝试了以下打印(0,),而不是 784,000 位数组。
# -*- coding: utf8 -*-
# Processed MNIST dataset (http://cis.jhu.edu/~sachin/digit/digit.html)
import struct
f = open('data/data0', mode='rb')
data = []
print struct.unpack('<i', f.read(4))
Run Code Online (Sandbox Code Playgroud)
如何将此二进制文件读入 784,000 位数组(28 字节 x 28 字节 x 1k 样本)或 28x28x1000 3D 数组。我以前从未使用过二进制文件,而且很困惑!
实现 NavigationView 抽屉 - 我能够生成抽屉并查看它,但无法通过滑动关闭它。此外,NavigationItemSelectedListener 似乎未正确设置,因为我无法检测到项目上的单击事件。
MainActivity.java
private NavigationView navigationView;
private DrawerLayout navDrawerLayout;
private ListView navDrawerList;
private ArrayList<NavDrawerItem> navDrawerItemList;
private ActionBarDrawerToggle navDrawerToggle;
private void setupNavDrawer() {
this.navigationView = (NavigationView) findViewById(R.id.navigation_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Utility.showDebugToast(String.valueOf(item.getItemId()));
if(item.isChecked()) {
item.setChecked(false);
} else {
item.setChecked(true);
}
navDrawerLayout.closeDrawers();
return true;
}
});
this.navDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
this.navDrawerList = (ListView) findViewById(R.id.left_drawer);
this.navDrawerItemList = new ArrayList<>();
this.navDrawerItemList.add(new NavDrawerItem("NAME", NavDrawerItemType.NAME));
this.navDrawerItemList.add(new NavDrawerItem("Create Mesh", NavDrawerItemType.CREATE_MESH));
this.navDrawerList.setAdapter(new NavDrawerAdapter(this, R.layout.drawer_item, R.id.drawer_tab_text, this.navDrawerItemList));
this.navDrawerToggle = new …Run Code Online (Sandbox Code Playgroud) 我在尝试使用Python 2.6在Mac OS X上列出目录中的所有文件/文件夹时遇到问题.
为了简化问题,我试图简单地列出桌面上的所有文件(非空).我明白这可以这样做:
currentFileList = os.listdir("~/Desktop")
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误:
currentFileList = os.listdir("~/Desktop")
OSError: [Errno 2] No such file or directory: '~/Desktop'
Run Code Online (Sandbox Code Playgroud)
有什么建议?
在Ember JS中检测滚动的最佳方法是什么?没有内置的滚动动作,我可以使用jquery但不知道在哪里放置它?它会进入我的application.js因为它有应用范围,还是其他地方?
实际的滚动检测/逻辑在这里不是问题,而是如何以Embery的方式设置这样的脚本.
理想情况下,滚动是一个动作,可以在application.js文件中进行处理:
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
onScroll: function() {
alert('scrolled');
}
}
});
Run Code Online (Sandbox Code Playgroud) 想用等效的ASCII替换单词中的所有法语字母.
letters = [['é', 'à'], ['è', 'ù'], ['â', 'ê'], ['î', 'ô'], ['û', 'ç']]
for x in letters:
for a in x:
a = a.replace('é', 'e')
a = a.replace('à', 'a')
a = a.replace('è', 'e')
a = a.replace('ù', 'u')
a = a.replace('â', 'a')
a = a.replace('ê', 'e')
a = a.replace('î', 'i')
a = a.replace('ô', 'o')
a = a.replace('û', 'u')
a = a.replace('ç', 'c')
print letters[0][0]
Run Code Online (Sandbox Code Playgroud)
é但是,此代码打印.我怎样才能做到这一点?
我试图合并两个python列表,其中给定索引的值将在新列表中形成一个列表(元素).例如:
merge_lists([1,2,3,4], [1,5]) = [[1,1], [2,5], [3], [4]]
我可以迭代这个函数来组合更多的列表.实现这一目标的最有效方法是什么?
在测试了我之前选择的答案后,我意识到我有其他标准和更普遍的问题.我还想结合包含列表或值的列表.例如:
merge_lists([[1,2],[1]] , [3,4]) = [[1,2,3], [1,4]]
目前提供的答案会在这种情况下生成更高维度的列表.
python ×8
python-2.7 ×5
ascii ×2
firebase ×2
french ×2
java ×2
javascript ×2
string ×2
action ×1
android ×1
animation ×1
arrays ×1
asynchronous ×1
binaries ×1
d3.js ×1
dataframe ×1
directory ×1
ember.js ×1
file ×1
html ×1
jsx ×1
list ×1
macos ×1
merge ×1
numpy ×1
pandas ×1
path ×1
react-helmet ×1
reactjs ×1
scroll ×1
serverless ×1
spring ×1
xml ×1