【问题标题】:JSON and SQLite3 in PythonPython 中的 JSON 和 SQLite3
【发布时间】:2015-10-07 08:15:56
【问题描述】:

我目前正在尝试从 JSON 数据集中解析以下小示例行。但是,在 python 中我遇到了问题。任何帮助是极大的赞赏。我对代码的糟糕尝试如下:

数据集:

{
   "matchId": 1778839570,
   "region": "NA",
   "platformId": "NA1",
   "matchMode": "CLASSIC",
   "matchType": "MATCHED_GAME",
   "matchCreation": 1427867835805,
   "matchDuration": 3424,
   "queueType": "RANKED_SOLO_5x5",
   "mapId": 11,
   "season": "SEASON2015",
   "matchVersion": "5.6.0.194",
   "participants": [
      {
         "teamId": 100,
         "spell1Id": 4,
         "spell2Id": 11,
         "championId": 113,
         "highestAchievedSeasonTier": "GOLD"
      }
   ]
}

代码:

import json
from pprint import pprint
fhand = json.load(open('riot.json'))
for e in fhand:
    print e

注意:我们的想法是将这些中的每一个解析为一列,其中 matchID 将是 sql 表的 key_id(不同)。其他元组将是具有值的列。实际上,会有很多像上面的 Dataset 一样的文本块,每个块都会对应一个 matchID。感谢您的帮助!

【问题讨论】:

  • 你的问题是什么? (“为我写代码!”不是问题。)见How do I ask a good question?
  • 抱歉!问题是,如何解析该 JSON 集并将其插入 sqlite3 数据库。感谢您提供有用的提示!

标签: python json api sqlite


【解决方案1】:

这里的fhand 是一本字典。查看 python 字典的文档:dictionaries 了解如何使用字典。

for e in fhand:
    print e

此代码将打印所有键(或列名)。

for e in fhand:
    print fhand[e]

您可以使用它来获取值。还有其他内置函数可以在这里使用。查看文档以选择适合您的文档。

【讨论】:

  • 感谢您的快速回复!我浏览了一些文档。您回复的代码有点不同。你知道为什么它不遵循这种模式吗? >>> for i, v in enumerate(['tic', 'tac', 'toe']): ... print i, v ... 0 tic 1 tac 2 toe
  • 你必须阅读很多。枚举文档:docs.python.org/2/library/functions.html#enumerate
  • 这很有意义。在这个其他 stackoverflow 示例线程中枚举用于创建 (index_position, value) 元组。
  • 刚刚做了。抱歉,stackoverflow 的新手并试图掌握它:) 再次感谢!
  • 你知道如何解析参与者下的元组内部列表吗?我用你推荐的字典解析尝试了类似的技巧。但是,它正在解析文字字符串“参与者”。我希望能够解析内部字典(在列表中,有效地使其成为元组列表)。不幸的是,JSON 的格式就是这个内部列表。
猜你喜欢
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2021-02-04
  • 1970-01-01
  • 2022-01-23
  • 2019-05-16
  • 2019-04-06
相关资源
最近更新 更多