首页 > 解决方案 > 将 JSON 值转换为字符串

问题描述

r = '{"available_sizes":[{"id":104682,"name":"40","preorder_only":false},{"id":104683,"name":"41","preorder_only":false},{"id":104684,"name":"42","preorder_only":false},{"id":104685,"name":"43","preorder_only":false},{"id":104687,"name":"45","preorder_only":false}]}'

data = json.loads(r)

for element in data: 
    for value in data['available_sizes']:
        print(value['name'])

目前打印出以下内容:

40
41
42
43
45

然后我将如何将此数据用作字符串?以下是所需的输出。

Available sizes are 40, 41, 41, 43, 45

标签: pythonjsonpython-3.x

解决方案


您的最外层循环是多余的,因为您只有一个键可以迭代。

迭代data,将您的数字附加到列表中,然后str.join在最后调用以有效地将您的字符串连接在一起。

nums = []
for v in data['available_sizes']:
    nums.append(str(v['name']))  # v['name'] if it is already string

print(f'Available sizes are {', '.join(nums)}')

您可以使用列表推导重写循环 -

num_str = ', '.join([v['name'] for v in data['available_sizes']])
print(f'Available sizes are {num_str}')  

对于 JSON 数据遍历的入门,我建议查看这个答案


推荐阅读