我有下一个不带引号且带有数组和子字典的字符串:
s ='{source: [s3, kinesis], aws_access_key_id: {myaws1, myaws2}, aws_secret_access_key: REDACTED_POSSIBLE_AWS_SECRET_ACCESS_KEY, bucketName: bucket, region_name: eu-west-1, fileType: zip, typeIngestion: FULL, project: trackingcampaigns, functionalArea: client, filePaths: [s3Sensor/2018/], prefixFiles: [Tracking_Sent, Tracking_Bounces, Tracking_Opens, Tracking_Clicks, Tracking_SendJobs], prefixToTables: {Tracking_Bounces: MNG_TRACKING_EXTRACT_BOUNCES_3, Tracking_Sent: MNG_TRACKING_EXTRACT_SENT_3, Tracking_Clicks: MNG_TRACKING_EXTRACT_CLICKS_3, Tracking_Opens: MNG_TRACKING_EXTRACT_OPENS_3, Tracking_SendJobs: MNG_TRACKING_EXTRACT_SENDJOBS_3}, stagingPath: /zipFiles/}'
Run Code Online (Sandbox Code Playgroud)
我想把它转换成字典。
如果这个问题已经在这里探讨过,请提前道歉 - 我在这里看了不同的答案,却找不到我需要的东西.
我的目标是创建一个这样的字典 - {'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c':[0, 5, 0, 1], and so on}
我所拥有的是具有重复键的多个词典(每个其他词典中都有相同的键),就像这样
{'a':10, 'b': 0, 'c': 2}
{'a':7, 'b': 4, 'c': 4}
{'a':4, 'b': 5, 'c': 3}
我无法知道这些字典的数量,或者是否有密钥继续到'f',或者其中有'g',但我知道密钥是重复的.我试过defaultdict但我得到的是 -
defaultdict(<type 'list'>, {'a': [10]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3], 'c': [0]})
Run Code Online (Sandbox Code Playgroud)
然后为下一个字典做同样的事情 -
defaultdict(<type 'list'>, {'a': [4]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5], 'c': [1]})
Run Code Online (Sandbox Code Playgroud)
我对上面输出的代码是 …
我有一个字符串:
'{tomatoes : 5 , livestock :{cow : 5 , sheep :2 }}'
Run Code Online (Sandbox Code Playgroud)
并希望将其转换为
{
"tomatoes" : "5" ,
"livestock" :"{"cow" : "5" , "sheep" :"2" }"
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
我是Python新手。我有一个从我的 sqlite 数据库中获取的字符串。我想将字符串转换为list of list of dicts. 我尝试ast过json图书馆但失败了。
这是字符串:
a = '"[[{"plugin_type":"input","plugin":"mysql","dbname":"smackcoders","user":"root","password":"root","tbname":"agg_csv","host":"localhost","id":"mysql1","limit_count":5},{"plugin_type":"filter","plugin":"metrics","input_from":"mysql1","id":"metrics","field_name":"count_result", "field":"state","value":"kerala","action":"count","send_data_immediately":True},{"plugin_type":"output","plugin":"elastic","id":"elastic_search","input_from":"metrics","ind":"neww10","doc_typ":"sm23"}]]"'
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的代码:
import ast
import json
a = '"[[{"plugin_type":"input","plugin":"mysql","dbname":"smackcoders","user":"root","password":"root","tbname":"agg_csv","host":"localhost","id":"mysql1","limit_count":5},{"plugin_type":"filter","plugin":"metrics","input_from":"mysql1","id":"metrics","field_name":"count_result", "field":"state","value":"kerala","action":"count","send_data_immediately":True},{"plugin_type":"output","plugin":"elastic","id":"elastic_search","input_from":"metrics","ind":"neww10","doc_typ":"sm23"}]]"'
a = a.replace("[[","[").replace("]]","]")
print(a)
# using json library- fails
# jdata = json.loads(a)
# for d in jdata:
# for key, value in d.iteritems():
# print (key, value)
#using ast library - it also fails
# res = [ast.literal_eval(x) for x in a]
Run Code Online (Sandbox Code Playgroud)
我尝试了此链接将字符串转换为字典并将str 转换为列表列表
但就我而言,我有一个list of list …
我遇到了以下格式的字符串输入:
'1:[2,3],4:[1],3:[4],2:[4]'
Run Code Online (Sandbox Code Playgroud)
如何将其转换为以下格式:
{1:[2,3],4:[1],3:[4],2:[4]}
Run Code Online (Sandbox Code Playgroud)
谢谢!
对于我正在处理的程序,我有一个包含类似于此的文本文件:
{0: {2: 1, 1: 1}, 1: {2: 1, 0: 1}, 2: {0: 1, 1: 1}}
Run Code Online (Sandbox Code Playgroud)
其中第一个数字是节点的索引,以下是此节点连接的后续节点列表及其权重.我想知道最好的方法是能够抓住一对{}中包含的单个集合,所以我最终会得到这样的结果:
0:
{2: 1, 1: 1}
1:
{2: 1, 0: 1}
Run Code Online (Sandbox Code Playgroud)
目前我的计划是找到第一个冒号的索引,并将open括号和冒号之间的内容作为ID,然后找到下一个打开的括号并跟随冒号获取以下一组节点,但它很快变得复杂更大的列表,并想知道是否有更好的方法
我有一个看起来像的字符串.
"[{'P_Key': 'val1', 'Price': '3.95'}, {'P_Key': 'val2', 'Price': '2.2'}, {'P_Key': 'val3', 'Price': '0.4'}]"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为字典列表,如:
[{'P_Key': 'val1', 'Price': '3.95'},
{'P_Key': 'val2', 'Price': '2.2'},
{'P_Key': 'val3', 'Price': '0.4'}]
Run Code Online (Sandbox Code Playgroud)
字符串中可能有任意数量的此类字典.
我有一条信息如下:
[{"city": "Beverly Hills", "state": "", "postal_code": "", "address": "Some Address", "country": "USA"}, {"city": "New York", "state": "NY", "postal_code": "", "address": "P.O. BOX 52404", "country": "USA"}]
Run Code Online (Sandbox Code Playgroud)
当我这样做type()时显示为<class 'str'>.
如何从字符串中获取此信息到Python 3中的字典列表?
我已经尝试过literal_eval并收到错误malformed node or string:,所以我不确定最好的办法是什么.
编辑
以下是一个应该可重现的示例:
mydata = {'programs': '["France"]', 'ids': '[]', 'citizenships': '[]', 'nationalities': '["FR"]', 'places_of_birth': '[]', 'dates_of_birth': '["1973-03-25"]', 'addresses': '[{"state": null, "postal_code": null, "address": null, "city": null, "country": "FR"}]'}
for key,value in mydata.items():
if type(value) is str:
result = literal_eval(value) …Run Code Online (Sandbox Code Playgroud)