我是一个相当新的开发人员,并试图从这个文件中解析"id"值。遇到下面的问题。
我的蟒蛇代码:
import ast
from pathlib import Path
file = Path.home() /'AppData'/'Roaming'/'user-preferences-prod'
with open(file, 'r') as f:
contents = f.read()
ids = ast.literal_eval(contents)
profileids = []
for data in ids:
test= data.get('id')
profileids.append(test)
print(profileids))
这将返回错误:值错误:格式错误的节点或字符串:<_ast。在 id 处0x0000023D8DA4D2E8>处命名对象 = ast.literal_eval(内容(
我感兴趣的文件中的内容片段:
{"settings":{"defaults":{"value1":,"value2":,"value3":null,"value4":null,"proxyid":null,"sites":{},"sizes":[],"value5":false},"value6":true,"value11":,"user":{"value9":"","value8": ,"value7":"","value10":""},"webhook":"},'profiles':[{'billing': {'address1': '', 'address2': '', 'city': '', 'country': 'United States', 'firstName': '', 'lastName': '', 'phone': '', 'postalCode': '', 'province': '', 'usesBillingInformation': False}, 'createdAt': 123231231213212, 'id': '23123123123213, 'name': ''
我需要循环这段代码,因为我对有多个 id 值感兴趣,并且需要将它们全部输入到列表中。希望我解释了这一切。根据Windows,文件类型为"文件",我只是使用记事本查看其内容。
在我看来,您有一个文件,其中包含dict
(字典(的字符串表示形式。因此,您需要做的是:
string_of_dict
→ast.literal_eval()
→dict
- 打开文件并将文本读入字符串变量。目前我认为这个字符串正在进入
ids
. - 然后使用库将
dict
的字符串表示形式转换为ast
dict
,如下所示。参考
import ast
string_of_dict = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
ast.literal_eval(string_of_dict)
输出:
{'muffin': 'lolz', 'foo': 'kitty'}
溶液
这样的事情很可能有效。您可能需要对其进行一些调整。
import ast
with open(file, 'r') as f:
contents = f.read()
ids = ast.literal_eval(contents)
profileids = []
for data in ids:
test= data.get('id')
profileids.append(test)
print(profileids)