python pandas - 解析 JSON 时出现类型错误:字符串索引必须是整数

P. 普鲁内斯夸勒

JSON 文件中的记录如下所示(请注意“营养素”是什么样的):

{
"id": 21441,
"description": "KENTUCKY FRIED CHICKEN, Fried Chicken, EXTRA CRISPY,
Wing, meat and skin with breading",
"tags": ["KFC"],
"manufacturer": "Kentucky Fried Chicken",
"group": "Fast Foods",
"portions": [
{
"amount": 1,
"unit": "wing, with skin",
"grams": 68.0
},
...
],
"nutrients": [
{
"value": 20.8,
"units": "g",
"description": "Protein",
"group": "Composition"
},
{'description': 'Total lipid (fat)',
'group': 'Composition',
'units': 'g',
'value': 29.2}
...
]
}

以下是本书练习中的代码*。它包括一些争论,并将每种食物的营养成分组装到一张大桌子上:

import pandas as pd
import json

db = pd.read_json("foods-2011-10-03.json")

nutrients = []

for rec in db:
     fnuts = pd.DataFrame(rec["nutrients"])
     fnuts["id"] = rec["id"]
     nutrients.append(fnuts)

但是,我收到以下错误,我不知道为什么:


TypeError                                 Traceback (most recent call last)
<ipython-input-23-ac63a09efd73> in <module>()
      1 for rec in db:
----> 2     fnuts = pd.DataFrame(rec["nutrients"])
      3     fnuts["id"] = rec["id"]
      4     nutrients.append(fnuts)
      5

TypeError: string indices must be integers

*这是Python for Data Analysis一书中的一个例子

阿马丹

for rec in db迭代列名要遍历行,

for id, rec in db.iterrows():
    fnuts = pd.DataFrame(rec["nutrients"])
    fnuts["id"] = rec["id"]
    nutrients.append(fnuts)

虽然这有点慢(所有需要构建的字典)。itertuples是比较快的; 但由于您只关心两个系列,直接迭代系列可能是最快的:

for id, value in zip(db['id'], db['nutrients']):
    fnuts = pd.DataFrame(value)
    fnuts["id"] = id
    nutrients.append(fnuts)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeError:使用Python解析JSON时,字符串索引必须是整数?

JSON解析有时会在解析字符串时出现错误

解析JSON时,字符串索引必须为整数-python

TypeError:使用Python解析Json时,字符串索引必须是整数错误

使用Python / Pandas解析嵌套的JSON

使用Python和Pandas解析嵌套的JSON

使用Pandas从CSV解析带引号的JSON字符串

Python:JSON规范化“字符串索引必须为整数”错误

字符串索引必须是整数json python

TypeError字符串索引必须为整数-python json dict

使用jq解析JSON数据时出现错误消息“无法使用字符串“标题”索引数组”

索引整数和字符串的JSON数组时,ElasticSearch抛出映射器解析异常

Json解析Python错误

字符串更改时解析 JSON 时出现 Python 错误

使用 json 数据解析错误:字符串索引必须是整数

类型错误:字符串索引必须是整数,而不是带有 JSON 解析的 str

类型错误:字符串索引必须是整数(Python)

Robot Framework - 类型错误:解析 Json 时字符串索引必须是整数

类型错误:字符串索引必须是带 JSON 的整数

类型错误:列表索引必须是整数或切片,而不是解析 json 请求时的 str

字符串索引必须是整数 - 从 Python 中的 REST API 获取 JSON 响应

使用 Pandas 从 API 解析 JSON 字符串

类型错误:处理 json 文件时字符串索引必须是整数

Python - 读取 JSON - TypeError:字符串索引必须是整数

Python - XML 解析/导入过程中断,字符串索引必须是整数

类型错误:在 Python 中过滤 JSON 中的值时,字符串索引必须是整数

Python从字符串解析json

解析 JSON 时出现“字符串索引必须是整数”错误

字符串索引必须是整数,同时通过json解析