小编Ger*_*lan的帖子

使用 Python 将 JSON 对象导入 Postgresql

我正在尝试使用 Python 将 JSON 数据导入到 Postgresql 中,但是当我将具有 JSONB 数据类型的“via”字段放入我创建的文件中时,出现“psycopg2.ProgrammingError: can't adjustment type 'dict'”错误Postgresql 数据库中的表。有什么办法可以解决我的问题吗?任何帮助都可以。

样本.json

[
  {
    "url": "https://www.abcd.com/",
    "id": 123456789,
    "external_id": null,
    "via": {
      "channel": "email",
      "id": 4,
      "source": {
        "from": {
          "address": "abc@abc.com",
          "name": "abc def"
        },
        "rel": null,
        "to": {
          "address": "def@def.com",
          "name": "def"
        }
      }
    }
  },
  {
    "url": "http://wxyz.com/",
    "id": 987654321,
    "external_id": null,
    "via": {
      "channel": "email",
      "id": 4,
      "source": {
        "from": {
          "address": "xyz@xyz.com",
          "name": "uvw xyz"
        },
        "rel": null,
        "to": {
          "address": "zxc@zxc.com", …
Run Code Online (Sandbox Code Playgroud)

python database json list jsonb

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

使用 read() 方法从 Amazon S3 读取大尺寸 JSON 文件时出现内存错误

我正在尝试使用 Python 将大量 JSON 文件从 Amazon S3 导入到 AWS RDS-PostgreSQL 中。但是,这些错误发生了,

回溯(最近一次调用最后一次):

文件“my_code.py”,第 67 行,位于

file_content = obj['Body'].read().decode('utf-8').splitlines(True)

文件“/home/user/asd-to-qwe/fgh-to-hjk/env/local/lib/python3.6/site-packages/botocore/response.py”,第 76 行,读取

块= self._raw_stream.read(amt)

文件“/home/user/asd-to-qwe/fgh-to-hjk/env/local/lib/python3.6/site-packages/botocore/vendored/requests/packages/urllib3/response.py”,第239行,在读

数据 = self._fp.read()

文件“/usr/lib64/python3.6/http/client.py”,第 462 行,读取

s = self._safe_read(self.length)

文件“/usr/lib64/python3.6/http/client.py”,第 617 行,在 _safe_read 中

返回 b"".join(s)

内存错误

// my_code.py

import sys
import boto3
import psycopg2
import zipfile
import io
import json

s3 = boto3.client('s3', aws_access_key_id=<aws_access_key_id>, aws_secret_access_key=<aws_secret_access_key>)
connection = psycopg2.connect(host=<host>, dbname=<dbname>, user=<user>, password=<password>)
cursor = connection.cursor()

bucket = sys.argv[1]
key = sys.argv[2]
obj = s3.get_object(Bucket=bucket, Key=key)

def …
Run Code Online (Sandbox Code Playgroud)

python postgresql etl amazon-s3 amazon-rds

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

如何使用 Boto3 从 Amazon S3 读取大型 JSON 文件

我正在尝试从 Amazon S3 读取 JSON 文件,其文件大小约为 2GB。当我使用该方法时.read(),它给了我MemoryError.

这个问题有什么解决办法吗?任何帮助都可以,非常感谢!

json etl amazon-s3 boto3

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

标签 统计

amazon-s3 ×2

etl ×2

json ×2

python ×2

amazon-rds ×1

boto3 ×1

database ×1

jsonb ×1

list ×1

postgresql ×1