使用python读取json文件并打印键值
我想要一个条件循环,它应该读取json文件,并根据“user_name”匹配列表中的项目打印“postId” 我试着用这些婴儿步去看,但没用 Python版本:2.7.5 操作系统:Linux 下面是python脚本:使用python读取json文件并打印键值,python,json,key,Python,Json,Key,我想要一个条件循环,它应该读取json文件,并根据“user_name”匹配列表中的项目打印“postId” 我试着用这些婴儿步去看,但没用 Python版本:2.7.5 操作系统:Linux 下面是python脚本: import sys import re import json my_list = ['windows-super-user','linux user','unix_super_user'] for list_item in my_list: with open('
import sys
import re
import json
my_list = ['windows-super-user','linux user','unix_super_user']
for list_item in my_list:
with open('strings.json') as f:
d = json.load(f)
for userid in d:
if list_item == user_name:
print("Here's the user name :" +user_name+ ", and post id :" +postid)
下面是strings.json文件内容
[
{
"postId":"328e9497740b456154c636349",
"postTimestamp": "1521543600",
"pageType": "/home.php:topnews",
"viewTime": 1521545993647,
"user_name": "windows-super-user",
"gender": 3,
"likes": "8",
"id": "ffa1e07529ac917f6d573a",
"postImg": 1,
"postDesc": [753],
"origLink": 0,
"duration": 0,
"timestamp": 9936471521545,
"back_time": 1521545993693
},
{
"postId":"15545154c636349",
"postTimestamp": "547773600",
"pageType": "/home.php:topnews",
"viewTime": 45993647,
"user_name": "linux user",
"gender": 3,
"likes": "8",
"id": "695e45a17f6d573a",
"postImg": 1,
"postDesc": [953],
"origLink": 0,
"duration": 0,
"timestamp": 545993647,
"back_time": 85993693
},
{
"postId":"9098897740b456154c636349",
"postTimestamp": "899943600",
"pageType": "/home.php:topnews",
"viewTime": 1521545993647,
"user_name": "unix_super_user",
"gender": 3,
"likes": "8",
"id": "917f6d573a695e45affa1e07",
"postImg": 1,
"postDesc": [253],
"origLink": 0,
"duration": 0,
"timestamp": 193647,
"back_time": 1521545993693
},
]
预期产出:
以下是用户名:windows超级用户和帖子id:328e9497740b456154c636349这是用户名:linux用户,post id:15545154c636349
这是用户名:unix_super_user,post id:9098897740b456154c6349
尝试如下迭代:
import sys
import re
import json
my_list = ['windows-super-user','linux user','unix_super_user']
with open('strings.json') as f:
d = json.load(f)
for elem in d:
if elem["user_name"] in my_list:
print("Here's the user name :" +elem["user_name"]+ ", and post id :" +elem["postId"])
我打开文件并加载json,就像您所做的那样。但我只打开一次文件,并检查是否与
用户名匹配。如果找到匹配项,我会打印出名称和帖子id。尝试如下迭代:
import sys
import re
import json
my_list = ['windows-super-user','linux user','unix_super_user']
with open('strings.json') as f:
d = json.load(f)
for elem in d:
if elem["user_name"] in my_list:
print("Here's the user name :" +elem["user_name"]+ ", and post id :" +elem["postId"])
我打开文件并加载json,就像您所做的那样。但我只打开一次文件,并检查是否与用户名匹配。如果找到匹配项,我会打印出姓名和帖子id。谢谢karan。您知道有没有简单的方法可以将json文件中的所有单引号转换为双引号。e、 上面提到的json文件strings.json在我的例子中都是单引号;将open('strings.json')设为f:data=json.dumps(f)print(data)error:TypeError:type'TextIOWrapper'的对象不是json可序列化的^m根据post上的答案,可以执行以下操作:f=open('strings.json',r')s=f.read().strip()l=eval(s)json.dumps(l)
它只打印一个值,这是用户名:windows超级用户和post id:328e9497740b456154c636349,而不是全部三个语句,这是用户名:windows超级用户,post id:328e9497740b456154c636349这是用户名:linux用户,post id:15545154c636349这是用户名:unix\u超级用户,post id:9098897740b456154c636349I检查了代码并使用您提供的json运行,它提供了所有三个输出。你有没有改变什么?如果你能更新你正在使用的代码,我会尽力帮你的。谢谢karan。您知道有没有简单的方法可以将json文件中的所有单引号转换为双引号。e、 上面提到的json文件strings.json在我的例子中都是单引号;将open('strings.json')设为f:data=json.dumps(f)print(data)error:TypeError:type'TextIOWrapper'的对象不是json可序列化的^m根据post上的答案,可以执行以下操作:f=open('strings.json',r')s=f.read().strip()l=eval(s)json.dumps(l)
它只打印一个值,这是用户名:windows超级用户和post id:328e9497740b456154c636349,而不是全部三个语句,这是用户名:windows超级用户,post id:328e9497740b456154c636349这是用户名:linux用户,post id:15545154c636349这是用户名:unix\u超级用户,post id:9098897740b456154c636349I检查了代码并使用您提供的json运行,它提供了所有三个输出。你有没有改变什么?如果你能更新你正在使用的代码,我可以帮你