json - 字符串以 TextIOWrapper 的形式出现,而不是使用 ast.literal_eval() 函数的字符串
问题描述
我正在尝试使用ast.literal_eval()
.I 将字符串转换为字典。我使用网站的 API 来检索 Json 格式的数据。当我将数据打印到控制台并使用该type()
函数时,它以字符串的形式返回(但格式类似于字典)。我将 str 写入一个 json 文件。它看起来像这样:
{"productId":1200,"productName":"Mox Sapphire","image":"https://6d4be195623157e28848-7697ece4918e0a73861de0eb37d08968.ssl.cf1.rackcdn.com/1200_200w.jpg","categoryId":1,"groupId":7,"url":"http://store.tcgplayer.com/magic/alpha-edition/mox-sapphire","modifiedOn":"2013-05-09T12:13:41.653","productConditions":[{"productConditionId":15346,"name":"Near Mint","language":"English","isFoil":false},{"productConditionId":317018,"name":"Damaged","language":"English","isFoil":false},{"productConditionId":332776,"name":"Moderately Played","language":"English","isFoil":false},{"productConditionId":348534,"name":"Heavily Played","language":"English","isFoil":false},{"productConditionId":364292,"name":"Lightly Played","language":"English","isFoil":false}]}
当我打开文件并运行type()
它时,它会以<class "str">
. 然后我尝试使用ast.literal_eval()
Json 文件上的函数将其转换为字典,该函数是一个字符串,但出现以下错误:
Traceback (most recent call last):
File "C:/Users/Jup/PycharmProjects/WebSc/tcg_player.py", line 62, in <module>
get_card_detail()
File "C:/Users/Jup/PycharmProjects/WebSc/tcg_player.py", line 59, in get_card_detail
x = json.loads(f)
File "C:\Program Files\Python36\lib\json\__init__.py", line 348, in loads
'not {!r}'.format(s.__class__.__name__))
TypeError: the JSON object must be str, bytes or bytearray, not 'TextIOWrapper'
我确定我缺少一些基本的东西。当我使用它时,我不明白它是类型TextIOWrapper
而不是字符串type()
,它说的是字符串。如果你能帮助我看到我的(可能是显而易见的)缺陷,那就太棒了。
解决方案
推荐阅读
- amazon-lex - Lex 可以使用 AWS Pinpoint 接收彩信图像 - 目标是将用户发送的图像存储在 DynamoDB 中
- javascript - 如何将firebase存储下载URL保存到firestore集合?
- arrays - 如何使 SPARKLINE 折线图仅动态显示过去 7 天和其他时间段?
- python - 有没有办法在熊猫中使用方法/函数作为 .loc() 的表达式?
- python - Django/Wagtail - 如何在模板中创建一个条件来检查 url 路径?
- asp.net-core - 身份令牌重置密码 ASP.NET Core 3.1 的问题
- android - 如图所示,如何实现交错布局管理器的高度
- javascript - ngClass 和 onClick 不适用于 Div
- javascript - 如何在更新用户密码时验证旧密码?
- javascript - 按对象属性(对象数组)获取平均值的最有效方法