小编Isa*_*hoo的帖子

在 python 中将 json 模式转换为 avro 模式

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

jsonschema python-3.x avro

8
推荐指数
0
解决办法
1585
查看次数

如何在android中导入谷歌联系人(以编程方式)?

任何人都可以建议一种方法,如何将联系人从谷歌提取到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)

android google-contacts-api

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

将 json 补丁应用到 mongodb 文档

我想使用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 的好方法。

mongodb jsonpath flask python-3.x http-patch

5
推荐指数
0
解决办法
2228
查看次数