相关疑难解决方法(0)

如何在Python中将不带引号、带有数组和子字典的字符串转换为字典?

我有下一个不带引号且带有数组和子字典的字符串:

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)

我想把它转换成字典。

python

2
推荐指数
1
解决办法
1941
查看次数

字典Python中重复键的值列表

如果这个问题已经在这里探讨过,请提前道歉 - 我在这里看了不同的答案,却找不到我需要的东西.

我的目标是创建一个这样的字典 - {'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)

我对上面输出的代码是 …

python dictionary key duplicates defaultdict

1
推荐指数
1
解决办法
1万
查看次数

Python将字符串转换为字典

我有一个字符串:

'{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 string dictionary

1
推荐指数
3
解决办法
2万
查看次数

将字符串转换为Python字典列表的列表

我是Python新手。我有一个从我的 sqlite 数据库中获取的字符串。我想将字符串转换为list of list of dicts. 我尝试astjson图书馆但失败了。

这是字符串:

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 …

python string dictionary list python-3.x

1
推荐指数
1
解决办法
346
查看次数

Python:将以下字符串转换为字典的优雅解决方案

我遇到了以下格式的字符串输入:

'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)

谢谢!

python

1
推荐指数
1
解决办法
82
查看次数

基于封闭括号的拆分字符串

对于我正在处理的程序,我有一个包含类似于此的文本文件:

{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,然后找到下一个打开的括号并跟随冒号获取以下一组节点,但它很快变得复杂更大的列表,并想知道是否有更好的方法

python string python-3.x

0
推荐指数
1
解决办法
282
查看次数

将字符串转换为python列表和字典?

我有一个看起来像的字符串.

"[{'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)

字符串中可能有任意数量的此类字典.

python string dictionary list

0
推荐指数
1
解决办法
79
查看次数

将字符串转换为字典列表Python 3

我有一条信息如下:

[{"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)

python string dictionary list python-3.x

0
推荐指数
2
解决办法
5343
查看次数

标签 统计

python ×8

dictionary ×5

string ×5

list ×3

python-3.x ×3

defaultdict ×1

duplicates ×1

key ×1