我想使用 python 将 json 模式转换为 avro 模式,因为我正在 Python Fastapi 中构建微服务。
json 模式
{
"type":"object",
"properties":{
"IsNonPO":{
"title":"IsNonPO",
"type":[
"boolean",
"null"
],
"precision":null,
"scale":null,
"size":null,
"allowedValues":null
},
"ApprovedState":{
"title":"ApprovedState",
"type":[
"number",
"null"
],
"precision":null,
"scale":null,
"size":null,
"allowedValues":[
{
"key":"8",
"value":"Invalid"
},
{
"key":"1",
"value":"Composing"
},
{
"key":"2",
"value":"Submitted"
},
{
"key":"4",
"value":"Approved"
},
{
"key":"16",
"value":"Denied"
}
]
},
"CreateDate":{
"title":"CreateDate",
"type":[
"string",
"null"
],
"precision":null,
"scale":null,
"size":null,
"allowedValues":null,
"format":"date-time"
},
"RemitToAddress": {
"type": ["object", "null"],
"properties": {
"State": {
"title": …Run Code Online (Sandbox Code Playgroud) 任何人都可以建议一种方法,如何将联系人从谷歌提取到Android应用程序?
谢谢!
下面是我的代码,我在第 57 行遇到运行时错误。具体来说,它在 AsyncTask 中显示异常。
package com.example.isan.contacts;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.MalformedURLException;
import java.net.URL;
import com.google.gdata.client.Query;
import com.google.gdata.client.Service;
import com.google.gdata.client.contacts.ContactsService;
import com.google.gdata.data.Link;
import com.google.gdata.data.contacts.ContactEntry;
import com.google.gdata.data.contacts.ContactFeed;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.NoLongerAvailableException;
import com.google.gdata.util.ServiceException;
public class MainActivity extends ActionBarActivity {
private URL feedUrl;
private static final String username="username";
private static final String pwd="password";
private ContactsService service;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String …Run Code Online (Sandbox Code Playgroud) 我想使用Python Flask框架实现HTTP PATCH。作为输入,我将收到如下 JSON 补丁:
[
{ "op": "replace", "path": "/work/title", "value": "Senior Engineer" }
]
Run Code Online (Sandbox Code Playgroud)
我的数据库是 MongoDB,我想将上述补丁直接应用到 Mongo。例如,下面是 Mongo 中存储的文档:
{
"name":"ABC",
"age":25,
"work":{
"title":"Engineer",
"company":"XYZ"
}
}
Run Code Online (Sandbox Code Playgroud)
应用补丁后,它应该是:
{
"name":"ABC",
"age":25,
"work":{
"title":"Senior Engineer",
"company":"XYZ"
}
}
Run Code Online (Sandbox Code Playgroud)
您能帮我找到一种实施方法吗?
根据我的研究,我发现了一个Python模块python-json-patch,它有助于将 json 应用到 json 对象的补丁中。因此,我们需要从 MongoDB 获取 json/document 并使用上述模块应用补丁。然后将文档替换回 MongoDB 中。所以,基本上这会以 PUT 而不是 PATCH 的形式结束。
另一种方法是我认为有一个模块来解析 json 补丁并构建 json 并使用$set将更新应用到 MongoDB将更新应用到 MongoDB 。但这种方法很幼稚而且效率不高。
因此,请建议一种使用 json patch 并直接应用于 MongoDB 文档来实现 HTTP PATCH 的好方法。