python - 如何使用python3从json中的dicts列表中解析内容
问题描述
我的 json 文件:
{
"data": [
{
"features": {
"location": "West Springfield, MA",
"geo_type": "User location",
"screen_name": "JtTatro",
"primary_geo": "West Springfield, MA",
"id": 2158092352,
"tweets": 1,
"name": "Jim Tatro"
},
"user_id": 2158092352
}
,
{
"features": {
"location": "Tijuana, Baja California",
"geo_type": "User location",
"screen_name": "YuitziContreras",
"primary_geo": "Tijuana, Baja California",
"id": 996917180980744193,
"tweets": 1,
"name": "yuitzi contreras"
},
"user_id": 996917180980744193
}
]
}
我正在尝试解析存储在功能字典中的数据。到目前为止我的代码:
import json
input_file = open ('file.json')
json_array = json.load(input_file)
tweet_list = []
features_list = []
user_list =[]
for item in json_array:
for item2 in json_array[item]:
tweet_list.append(item2)
for features,user in tweet_list:
print(features,user)
上面的代码返回字典名称:features, user_id
。如何获取每个 dict 字段的内容以便我可以将它们传递到我的数据库?
例如,获取位置、geo_type 等。
解决方案
在 JSON 中,[]
表示一个数组,而{}
表示一个对象。Python 将 JSON 对象(例如{"features": ..., "user_id": ...}
)解析为 dict。您应该使用.items()
方法从字典中获取键值对。迭代一个 dict 只给出键。
推荐阅读
- angular - 使用 CloudBuild 在 Google App Engine 中部署 ANGULAR build --prod 错误
- java - 使用 DefaultTableModel 将 ArrayList 项添加到 JTable
- flutter - 如何从另一个屏幕使用颤振_pageControler.jumpToPage()?
- visual-studio - Visual Studio 2017 - 如何查看基于 dmp 文件的调用堆栈?
- spring - Spring Boot @Valid 不显示来自@NotBlank 的消息
- qt - QtWebEngine Fetch API 因自定义方案而失败
- python - 由于 Ubuntu 上的 ArialMT 字体,无法导入 matplotlib.pyplot
- php - 如何使用 Laravel 在 Intervention Image 包中设置图像大小和尺寸
- r - 如何使用 r 将列表(来自 html_nodes)中的值从米转换为公里?
- nativescript - nativescript ios 应用程序崩溃 - 尝试更改不可配置属性的 getter