python - Python:如何将 JSON 中的值设置为列表中的索引?
问题描述
我正在尝试读取数据集并将 JSON 文件的整数值设置为列表的数组。这是示例 JSON 文件,
[{
"index_id": "1234",
"text": "hello world",
},
{
"index_id": "5678",
"text": "roses are red",
}]
现在,我刚刚尝试读取 JSON 文件并将所有内容放入 defaultdict(list),这使事情变得混乱。假设我将所有内容都读到L1
如果我尝试获取L1[1234],则会出现错误,因为1234不是 L1 中的有效索引,并且索引为 0,1。
如果打印了 L1,
{u'1234': u'hello world'}, {u'5678': u'roses are red'}]
我知道该列表具有我对索引的潜在价值,作为存储的值并以 unicode 形式存储(使情况变得更糟)。
那么如何将L1变成一个方法,所以如果我尝试拉起L1[1234]它会拉起'hello world',
{1234: u'hello world'}, {5678: u'roses are red'}]
谢谢
已编辑:更改了 JSON。
解决方案
假设您有一个 dicts 列表,您可以执行以下操作:
json_lst = [{
"1234": "hello world"
},
{
"5678": "roses are red"
}]
result = {int(k) : v for element in json_lst for k, v in element.items()}
print(result[1234])
输出
hello world
上面的字典理解等价于下面的嵌套循环:
result = {}
for element in json_lst:
for k, v in element.items():
result[int(k)] = v
推荐阅读
- json - 如何使用 boost 属性树生成 json 文件,如示例所示
- asp.net-mvc - 使用 Firebase Admin SDK 向移动设备发送通知
- api - Binance限价卖空API:保证金/订单(卖出)还是保证金/贷款?
- python - 如何修复此列表索引超出范围错误?
- c++ - CMake 和 GitHub Actions - GitHub Actions 上 CMake 库的 Windows 构建未将库链接到测试套件
- google-reporting-api - Google Reports API 返回的项目大小小于 maxResults 参数
- ios - 错误:0909006C:PEM 例程:get_name:没有起始行
- android-recyclerview - 如何在 android 中设置 SimpleExoPlayerView 的最大高度?
- java - 有没有办法读取 Scanner 类 java 中的分隔符?
- android - targetSdkVersion 为 30 时命令执行失败(Android R)