如何修复 Google Cloud Datastore ValueError: A Key must have a project set.
问题:
你正在尝试连接到 Google Cloud Storage 对象数据库:
datastore_key_example.py
#!/usr/bin/env python3
from google.cloud import datastore
# 创建、填充并持久化实体
entity = datastore.Entity(key=datastore.Key('MyEntityKind')) # Line of error
# ...但运行该代码时,你收到此错误消息:
datastore_valueerror_trace.txt
Traceback (most recent call last):
File "./IndexIntoDB.py", line 4, in <module>
entity = datastore.Entity(key=datastore.Key('MyEntityKind'))
File "/usr/local/lib/python3.6/dist-packages/google/cloud/datastore/key.py", line 109, in __init__
self._project = _validate_project(project, parent)
File "/usr/local/lib/python3.6/dist-packages/google/cloud/datastore/key.py", line 512, in _validate_project
raise ValueError("A Key must have a project set.")
ValueError: A Key must have a project set.解决方案
注意: 虽然下面的解决方案修复了上面列出的错误消息,但你可能更有兴趣查看此最小实体插入示例
正如错误消息所示,你需要添加项目名称。如果你不知道项目名称,请转到 Google Cloud Console,在顶部选择正确的项目,然后查看 URL:
gcp_console_url.txt
https://console.cloud.google.com/datastore/welcome?project=perceptive-tape-12345在此示例中,项目 ID(你必须在 Python 代码中使用)是 perceptive-tape-12345。
另请参见 google-cloud-datastore python 文档的 Keys 部分。
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow