我想按键读取数据,但下面的错误是有问题的
print(data[0]['user_id'])
TypeError: string indices must be integers
我的代码:
with open("AccInformation.json") as file:
data = json.loads(file.read())
print(data[0]['user_id'])
我的示例json文件:
[
"{\"user_id\": 88387467586, \"firstName\": \"Murat\", \"lastName\": \"KO\\u00c7\", \"email\": \"vehbikoc@kocholding.com.tr\", \"username\": \"kocholding\", \"password\": \"123456789\", \"accountKEY\": \"Y29K-G6LF-MRDI-PT5S-BZ1Q-VA4N\", \"register_date\": \"Mon Aug 30 02:01:31 2021\"}",
"{\"user_id\": 33233303603, \"firstName\": \"Sema\", \"lastName\": \"UZUN\", \"email\": \"sema12@gmail.com\", \"username\": \"semazen\", \"password\": \"123456789\", \"accountKEY\": \"ZW2G-7960-HPQA-5SKX-LTDJ-YBCE\", \"register_date\": \"Mon Aug 30 14:42:39 2021\"}",
"{\"user_id\": 86519529854, \"firstName\": \"Sema\", \"lastName\": \"UZUN\", \"email\": \"sema12@gmail.com\", \"username\": \"semazen\", \"password\": \"123456789\", \"accountKEY\": \"79DG-BNAZ-4IV3-OCKE-H5PM-UJ0T\", \"register_date\": \"Mon Aug 30 15:42:37 2021\"}",
"{\"user_id\": 51814237688, \"firstName\": \"Sema\", \"lastName\": \"UZUN\", \"email\": \"sema12@gmail.com\", \"username\": \"semazen\", \"password\": \"123456789\", \"accountKEY\": \"SLVG-F2C6-0QOB-5UJ1-AIHZ-78X4\", \"register_date\": \"Mon Aug 30 22:46:48 2021\"}"
]
我哪里做错了
问题是
AccInformation.json
文件中有一个字符串列表,您试图访问字符串的键user_id
,这是不可能的,因为字符串的索引是整数。您首先需要做的是json.loads(data[0])
,这将把字符串反序列化为python对象,然后您可以访问键user_id
应该是这样的:
另一个提示:您可以将文件传递给
json.load()
,因此不需要调用file.read()
:有关
json
库和示例的更多信息:https://docs.python.org/3/library/json.html这里有一个带有字符串列表的json。您需要再次解析它们或修复json
或者更好:
[]语法称为列表理解。我建议您改为修复json
您的json文件格式错误,是否可以删除地图周围的“”,并删除地图键中的\转义“”,以代替:
应该是
然后它将正常工作,您可以按如下方式访问数据:
相关问题 更多 >
编程相关推荐