小编Dav*_*ris的帖子

从云功能(python)写入Google云端存储

我正在尝试从云功能中将文件上传到谷歌云存储.但是,我无法将云存储库导入到我的函数中.

可以通过这种方式从云功能中使用云存储吗?

云功能

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

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

在Python中处理法语字母

我正在从一个包含法语和英文字母的文件中读取数据.我试图构建一个包含所有可能的英文和法文字母的列表(存储为字符串).我使用下面的代码执行此操作:

# 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时丢失了!奇怪的是当我直接打印出这一行(显示为评论)时,法语字符看起来很完美!

我该怎么做才能保留这些字符(é, è, ê, …

python string ascii python-2.7 french

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

Firebase Firestore:获取生成的文档 ID(Python)

我可以创建一个新文档(使用自动生成的 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

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

React Helmet TypeError:无法将符号值转换为字符串

我正在尝试使用以下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>标签。

是什么导致了这个错误?

jsx reactjs react-helmet

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

Java Spring - 从异步回调返回?

使用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)

java spring asynchronous firebase firebase-authentication

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

D3动画问题:轻松

编写一个函数来调用一些元素的动画,但是我不能设置任何类型的元素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)

html javascript animation interpolation d3.js

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

如何将二进制文件数据读入数组?

尝试在 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 数组。我以前从未使用过二进制文件,而且很困惑!

python arrays file binaries python-2.7

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

Android NavigationView 抽屉未关闭

实现 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)

java xml android navigation-drawer android-navigationview

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

列出目录python OSX

我在尝试使用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)

有什么建议?

python directory macos path

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

Ember JS中的滚动检测?

在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)

javascript scroll action web-applications ember.js

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

Python:用英语替换法语字母

想用等效的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 string ascii python-2.7 french

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

合并不同长度的python列表

我试图合并两个python列表,其中给定索引的值将在新列表中形成一个列表(元素).例如:

merge_lists([1,2,3,4], [1,5]) = [[1,1], [2,5], [3], [4]]

我可以迭代这个函数来组合更多的列表.实现这一目标的最有效方法是什么?

编辑(第2部分)

在测试了我之前选择的答案后,我意识到我有其他标准和更普遍的问题.我还想结合包含列表值的列表.例如:

merge_lists([[1,2],[1]] , [3,4]) = [[1,2,3], [1,4]]

目前提供的答案会在这种情况下生成更高维度的列表.

python merge list-comprehension list python-2.7

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

Python:将列从浮点数转换为整数

我正在使用熊猫,需要根据set_id索引连接两个数据帧。其中一个数据帧将这些作为浮点数(见下文)。如何将这些转换为整数?

在此处输入图片说明

python numpy dataframe python-2.7 pandas

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