【问题标题】:Creating a Data Structure from JSON Using Python使用 Python 从 JSON 创建数据结构
【发布时间】:2018-02-04 04:00:32
【问题描述】:

我是 python 新手,我有一个 json 文件,我试图用它来使用 python 创建一个数据结构。

以下是其中一行的示例:

[{'name': 'Nick', 'age': '35', 'city': 'New York'}...]

我将它读入内存,但不确定我需要采取哪些额外步骤才能使用它来创建表。

这是我迄今为止尝试过的:

import json
import csv
from pprint import pprint

with open("/desktop/customer_records.json") as customer_records:
    data=json.load(customer_records)
    for row in data:
        print(row)

理想情况下,我会采用以下格式:

Name Age City
Nick 35  New York

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 文本表格还是html表格?
  • table 是什么意思?数据结构还是可视化表示?
  • 对不起——一个数据结构
  • 能否请您详细说明您的问题?您想在 SQL 数据库中创建表吗?如果是这样,什么样的数据库引擎,MySQL? SQLite? SQL Server 等...?
  • 是的,希望在 MySQL 中创建一个表

标签: python sql json


【解决方案1】:

你的问题没有指定太精确,但是如果你想生成可以插入 MySQL 的 SQL,这里有一个将 JSON 转换为 SQL 语句序列的小程序:

#!/usr/bin/env python

import json

# Load data
with open("zz.json") as f:
    data=json.load(f)

# Find all keys
keys = []
for row in data:
    for key in row.keys():
        if key not in keys:
            keys.append(key)

# Print table definition
print """CREATE TABLE MY_TABLE(
  {0}
);""".format(",\n  ".join(map(lambda key: "{0} VARCHAR".format(key), keys)))

# Now, for all rows, print values
for row in data:
    print """INSERT INTO MY_TABLE VALUES({0});""".format(
        ",".join(map(lambda key: "'{0}'".format(row[key]) if key in row else "NULL", keys)))

对于这个 JSON 文件:

[
  {"name": "Nick", "age": "35", "city": "New York"},
  {"name": "Joe", "age": "21", "city": "Boston"},
  {"name": "Alice", "city": "Washington"},
  {"name": "Bob", "age": "49"}
]

它生成

CREATE TABLE MY_TABLE(
  city VARCHAR,
  age VARCHAR,
  name VARCHAR
);
INSERT INTO MY_TABLE VALUES('New York','35','Nick');
INSERT INTO MY_TABLE VALUES('Boston','21','Joe');
INSERT INTO MY_TABLE VALUES('Washington',NULL,'Alice');
INSERT INTO MY_TABLE VALUES(NULL,'49','Bob');

对于未来,请让您的问题更具体:)

【讨论】:

  • 感谢您的帮助!将来肯定会让我的问题更加具体
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2014-05-05
  • 2021-10-13
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多