Python 如何将字典转换为字符串?

Python 如何将字典转换为字符串?,python,json,python-3.x,loops,dictionary,Python,Json,Python 3.x,Loops,Dictionary,我的遗言: {0: {'Id': 'd1', 'name': 'elpato', 'email': '122as@gmail.com'}, 1: {'Id': 'd2', 'name': 'petoka', 'email': 'sss@gmail.com'}} 使用此命令获取dicts中的名称: for ids in [v['name'] for v in my_dict.values()]: #subprocess.call(["...", name]) print(ids) 现在我

我的遗言:

{0: {'Id': 'd1', 'name': 'elpato', 'email': '122as@gmail.com'}, 1: {'Id': 'd2', 'name': 'petoka', 'email': 'sss@gmail.com'}}
使用此命令获取dicts中的名称:

 for ids in [v['name'] for v in my_dict.values()]:
 #subprocess.call(["...", name])
 print(ids)
现在我这样做是为了用ids中生成的值生成JSON

faker库用于创建随机数据

import faker
import json
import subprocess


for ids in [g['name'] for g in my_dict.values()]:

    fake = Faker('en_US')
    print(ids)
    for ind in ids:

        for idx in range(1):

                sms =  {
                    "user_id": ind ,
                    "name": fake.name(),
                    "email": fake.email(),
                    "gender": "MALE",
                    "mother_name": fake.name(),
                    "father_name": fake.name()
                    }

        f_name = '{}.json'.format(ind)
        print(f_name)
        with open(f_name, 'w') as fp:
        json.dump(sms, fp, indent=4)
我需要的输出:elpato.json,petoka.json

我得到的输出:

  e.json
  l.json
  p.json
  a.json
  t.json
  o.json

  p.json
  e.json
  t.json
  o.json
  k.json
  a.json
试试这个

>>> my_dict = {0: {'Id': 'd1', 'name': 'elpato', 'email': '122as@gmail.com'}, 1: {'Id': 'd2', 'name': 'petoka', 'email': 'sss@gmail.com'}}
>>> ", ".join('{}.json'.format(v) for ik,iv in d.items() for k,v in iv.items() if k == 'name')
'elpato.json, petoka.json' # output in string form
替换为(完整代码)

试试这个:

my_dict = {0: {'Id': 'd1', 'name': 'elpato', 'email': '122as@gmail.com'}, 1: {'Id': 'd2', 'name': 'petoka', 'email': 'sss@gmail.com'}}
for k, v in my_dict.items():
    print(my_dict[k]['name']+".json")
或者,尝试使用下面的代码代替
打印(my_dict[k]['name']+.json”)

您也可以尝试以下方法:

for value in my_dict.values():
    print('{}.json'.format(value['name']))
输出:

elpato.json
petoka.json
另一种选择是使用:

You can use print(f"{f_name}.josn", end = ', ')

什么是冒牌货?也请添加该定义,而且我在
my_dict
updated@deveshkumarsinghthank中没有看到
userId
key,但我在my_dict中仍然没有看到userId key,还需要澄清文件名中的内容,与其只提供名称,不如使用
ind=ids
而不是
在ids:
@furas中为ind提供名称,因为它可以工作,但如果我必须打印10,则只打印8。当我打印我的字典和名字时,它显示了10个文件,但在本地pc上只有8个json,无法找出一行解决方案grtin我应该在哪一部分使用这行:
对于[g['userId']中的ID代表我的字典中的g'。join('{}.json'。格式(v)代表ik,iv代表d.items(),v代表k,v代表iv.items(),如果k='name'):
@elmantospetus NO,您不需要使用for循环。有一次,您的
my_dict
包含数据。替换完整的
for循环
并添加我的代码。我只应删除一个for循环或全部。cz im没有为ID中的ind定义ID:为什么您发布了两个答案?
elpato.json
petoka.json
In [14]: ', '.join(f"{i['name']}.json" for i in my_dict.values())
Out[14]: 'elpato.json, petoka.json'
You can use print(f"{f_name}.josn", end = ', ')